首页 > 其他分享 >什么是 SAP CDS view 中的 Exposed Association with filter 技术

什么是 SAP CDS view 中的 Exposed Association with filter 技术

时间:2023-08-21 10:33:28浏览次数:36  
标签:Exposed 视图 filter CDS SAP Association

在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视图,展示所有客户,但只包括那些具有特定类型的销售订单的客户。

以下是一个详细的示例说明:

  1. 创建实体: 首先,在CDS定义文件中定义两个实体,一个表示SalesOrder,另一个表示Customer。每个实体都会包含与其相关的属性,例如订单号、客户号、类型等。

  2. 定义“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' 的订单。

  3. 创建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的开发中,合理使用这一特性可以提高开发效率,同时实现数据选择性加载和业务需求的满足。

标签:Exposed,视图,filter,CDS,SAP,Association
From: https://blog.51cto.com/jerrywangsap/7171528

相关文章

  • iwebsec-文件包含 06 php://filter伪协议
    01、题目分析程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。在包含文件的过程中,如果文件能进行控制,则存储文件包含漏洞php://filter是元封装器,用于对本地磁盘文件进行读取02、文......
  • uniapp中使用过滤器filters来格式化时间
    uniapp中使用过滤器filters来格式化时间看那个创云商城源码的时候看到的,觉得蛮有用的,扒下来备用,应该也能直接用于JS  <template><viewclass="mix-timeline"><viewclass="cell"v-for="(item,index)inlist":key="index">......
  • 结果过滤器—MVC项目中结果过滤器(Result Filter)使用
    一、什么是结果过滤器?结果过滤器(ResultFilter),是对执行的Action结果进行处理的一种AOP思想,适用于任何需要直接环绕View或格式化处理的逻辑。结果过滤器可以替换或更改Action结果。在IActionResult执行的前后执行,使用它能够控制Action的执行结果,比如:格式化结果等。需要注意......
  • 什么是 SAP CDS view 的 join on demand 技术
    SAPCDSview里借助pathexpression技术,我们可以实现joinondemand的场景。如下图所示:Joinondemand是SAPCDS(CoreDataServices)视图的一个重要特性,它允许您在CDS视图中实现延迟连接,从而优化查询性能。通过在需要时执行连接操作,而不是在每次查询时都执行连接,可以减......
  • SAP CDS view 源代码中的 $projection
    我们看到下图CDSview源代码里association条件中的$projection.在SAPCDS(CoreDataServices)中,$projection是一个特殊的关键字,用于在查询中选择特定的字段并创建一个临时视图。它可以在CDS视图的源代码中使用,以对结果集进行处理和转换。通过使用$projection,可以根据需要......
  • 什么是 SAP CDS view 的 exposed Association
    SAPCDS是SAPHANA数据库中的一种新的数据定义语言。它允许开发者定义语义富裕的数据模型,这些数据模型可以以数据库独立的方式在ABAP服务器上使用。因此,通过CDS,开发者可以创建复杂的视图来构建ABAP程序或应用。关联(Association)在CDS视图中是一个非常重要的概念。它在C......
  • credit default swap(CDS)
    http://en.wikipedia.org/wiki/Credit_default_swapAcreditdefaultswap(CDS)isafinancialswapagreementthattheselleroftheCDSwillcompensatethebuyerintheeventofaloandefaultorothercreditevent.ThebuyeroftheCDSmakesaseriesof......
  • SAP CDS view 里 UNION 操作的用法
    下图是SAPCDSviewUnion操作的语法和例子:SAPCDS(CoreDataServices)视图是SAPHANA数据库在ABAP层面上的抽象和逻辑视图。它不仅提供了一种SQL类型的语言(DataControlLanguage,DCL)来查询和操作数据,还提供了各种特性和功能以支持应用程序开发。在SAPCDS中,Union操......
  • SAP CDS view 的 having Condition 用法
    Havingcondition在groupby执行完毕后才evaludateSAPCDS(CoreDataServices)是一个用于定义和消费数据模型的基础设施。CDS提供了一种新的数据建模方式,它能够在数据库层定义复杂的视图,以提供更高效的数据访问。HAVING关键字在SQL中常常与GROUPBY关键字一起使用......
  • 周日 Filter
    importjavax.servlet.*;importjavax.servlet.annotation.WebFilter;importjava.io.IOException;//@WebFilter("/hello.jsp")@WebFilter("/*")publicclassFilterDemo2implementsFilter{@OverridepublicvoiddoFilter(ServletR......