共计 1757 个字符,预计需要花费 5 分钟才能阅读完成。
在 SAP S/4HANA 中,CDS(Core Data Services)是一种弱小的数据建模和查询语言,而“Exposed Association with filter”是其性能之一。
下图是一个具体的例子。这里咱们应用 _bookings[class = 'C']
的语法来给 association 指定 一个过滤条件
,而后裸露成 _business_flights
给内部消费者应用。
SAP CDS 视图中 Exposed Association with filter 的简介:
在 CDS 视图中,关联(Association)用于建设实体之间的关系,相似于数据库中的外键。Exposed Association 是一种容许从一个 CDS 视图中引入其余 CDS 视图中的关联的形式。而“Exposed Association with filter”是在引入关联的同时,容许通过过滤条件限度引入的数据。这种性能在 SAP S/4HANA 的数据建模中十分有用,能够帮忙开发人员更加灵便地定义视图之间的数据关系。
“Exposed Association with filter”的利用举例:
假如咱们在一个公司的 SAP S/4HANA 零碎中,有两个实体:SalesOrder
(销售订单)和Customer
(客户)。每个销售订单都与一个客户相关联。咱们心愿创立一个 CDS 视图,展现所有客户,但只包含那些具备特定类型的销售订单的客户。
以下是一个具体的示例阐明:
- 创立实体:
首先,在 CDS 定义文件中定义两个实体,一个示意SalesOrder
,另一个示意Customer
。每个实体都会蕴含与其相干的属性,例如订单号、客户号、类型等。 -
定义“Exposed Association with filter”:
接下来,咱们在Customer
实体中定义一个“Exposed Association with filter”,将其与SalesOrder
实体的关联关系引入。在这个关联中,咱们能够通过增加条件来指定只抉择具备特定类型的销售订单的客户。entity Customer { key CustomerID: UUID; ... // Expose association with filter @ObjectModel.association.usage: #Exposure @ObjectModel.association.type: #Association @ObjectModel.association.filter: 'SalesOrders.OrderType =''Standard''' salesOrders: association [0..*] to SalesOrder on $projection.CustomerID = CustomerID; }
在上述示例中,
Customer
实体中的salesOrders
关联将仅包含SalesOrder
实体中OrderType
为 ‘Standard’ 的订单。 -
创立 CDS 视图:
最初,咱们能够创立一个 CDS 视图,基于Customer
实体,引入salesOrders
关联。因为曾经在关联中定义了过滤条件,所以在视图中引入的数据将只包含具备特定类型销售订单的客户。@AbapCatalog.sqlViewName: 'ZV_CustomersWithStandardOrders' define view ZCustomersWithStandardOrders as select from Customer { key CustomerID, ... salesOrders }
在上述视图中,咱们引入了
salesOrders
关联,但因为曾经定义了过滤条件,所以只有符合条件的销售订单的客户被包含在内。
通过这个示例,咱们能够看到“Exposed Association with filter”的利用。它容许咱们在一个 CDS 视图中引入关联数据,同时通过过滤条件来限度数据的范畴,以满足特定的业务需要。这种性能不仅有助于优化性能,还能够让开发人员更灵便地定义视图的内容。
总结而言,SAP CDS 视图中的“Exposed Association with filter”是一种弱小的个性,容许从其余视图中引入关联数据并通过过滤条件进行筛选。在 SAP S/4HANA 的开发中,正当应用这一个性能够进步开发效率,同时实现数据选择性加载和业务需要的满足。