首页 > 其他分享 >什么是 SAP CDS view 的 exposed Association

什么是 SAP CDS view 的 exposed Association

时间:2023-08-16 11:13:54浏览次数:34  
标签:Customer Customers exposed 视图 关联 CDS SAP Orders

SAP CDS 是 SAP HANA 数据库中的一种新的数据定义语言。它允许开发者定义语义富裕的数据模型,这些数据模型可以以数据库独立的方式在 ABAP 服务器上使用。因此,通过 CDS,开发者可以创建复杂的视图来构建 ABAP 程序或应用。

关联(Association)在 CDS 视图中是一个非常重要的概念。它在 CDS 视图中定义了两个实体(例如,两个数据库表或者两个 CDS 视图)之间的关系。这些实体通过某个特定字段(通常是主键和外键)相互连接。在定义关联时,我们需要指定关联的目标(也就是要关联的另一个实体),以及如何通过特定字段建立这两个实体之间的关联。

然后,我们来讨论 "exposed association"。"Exposed association" 是 SAP CDS 的一个特性,允许我们在定义 CDS 视图时明确地暴露或隐藏关联。这意味着,我们可以选择是否将定义的关联公开给 CDS 视图的消费者(例如,其他的 CDS 视图或者 ABAP 程序)。如果我们选择暴露关联,那么消费者就可以直接通过这个关联访问到关联的目标实体的数据。否则,如果我们选择隐藏关联,那么消费者就无法直接访问到关联的目标实体的数据。
下图高亮的 _scarr 就是 exposed association 的一个具体例子。

接下来,我们通过一个例子来详细解释 "exposed association"。假设我们有两个数据库表:Orders(订单)和 Customers(客户)。每个订单都有一个关联的客户。我们希望定义一个 CDS 视图,该视图包含订单的详细信息,以及与每个订单关联的客户的名称。我们可以这样定义这个 CDS 视图:

@AbapCatalog.sqlViewName: `V_ORDERS_AND_CUSTOMERS`
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: `Orders and Customers`
define view Orders_And_Customers as select from Orders as o
  association [0..1] to Customers as _Customer on $projection.CustomerID = _Customer.CustomerID
{
  o.OrderID,
  o.Product,
  o.Quantity,
  o.CustomerID,
  _Customer as Customer
}

在这个例子中,我们在 CDS 视图 Orders_And_Customers 中定义了一个关联 _Customer,它连接了 OrdersCustomers 这两个实体。我们通过 CustomerID 这个字段建立了这个关联。然后,我们在 CDS 视图的输出字段中包含了这个关联 _Customer。这样,我们就暴露了这个关联,使得 CDS 视图的消费者可以直接通过这个关联访问到 Customers 表的数据。

标签:Customer,Customers,exposed,视图,关联,CDS,SAP,Orders
From: https://www.cnblogs.com/sap-jerry/p/17633476.html

相关文章

  • SAP CRM 的 pricing 数据库表 PRCD_HEAD
    在SAPCRM系统中,PRCD_HEAD是一个重要的数据库表,用于存储定价计划(PricingPlan)的主要信息。定价计划是一个关键的概念,它定义了在销售和定价过程中使用的价格策略和规则。PRCD_HEAD表记录了每个定价计划的基本属性和配置信息,以支持在销售交易中正确地应用定价。以下是一个详细说明S......
  • SAP ABAP 系统中的 Lock Object
    作为一个SAP资深技术专家,很高兴为您解释SAPABAP系统中的LockObject概念。LockObject是在SAP中用于管理并发性(Concurrency)和数据一致性(Consistency)的机制,确保在多用户同时访问数据时不会发生冲突。LockObject概念:在SAPABAP中,LockObject是一种机制,用于控制和协......
  • 什么是 SAP ABAP 系统的 LUW (Logical Unit of Work)概念
    在SAPABAP系统中,数据库LUW是一个关键概念,用于管理数据库操作的一致性和隔离性。数据库LUW(LogicalUnitofWork)的概念:在SAPABAP系统中,数据库LUW是一组数据库操作的逻辑集合,这些操作要么全部成功地提交到数据库,要么全部回滚。它确保了数据库操作的一致性和隔离性。在SAPABAP中......
  • SAP CRM One Order 锁定模式用的是 Exclusive Lock
    在SAPCRMWebClientUI上点击Edit按钮后,界面进入可编辑状态:后台SM12事务码观察到锁类型为E,即Exclusivelock,也就是排他锁。其中PRCD_HEAD是Pricing模块抬头级别的数据:CRMOneOrder对应的lockobject名称为:E_CRM_ORDER关于这个叫做prospect的必填字......
  • credit default swap(CDS)
    http://en.wikipedia.org/wiki/Credit_default_swapAcreditdefaultswap(CDS)isafinancialswapagreementthattheselleroftheCDSwillcompensatethebuyerintheeventofaloandefaultorothercreditevent.ThebuyeroftheCDSmakesaseriesof......
  • 关于 SAP Lock Owner 问题的讨论
    在SAP事务开始时,始终会创建两个所有者(Owner)并可以请求锁定。一把锁可以有一个或两个所有者,分别是对话所有者和更新所有者。可以在_SCOPE参数中指定所有者的个数。默认为2即2个所有者:要找出当前持有锁的用户,请使用FunctionModuleENQUEUE_....这会将当前持有锁的......
  • SAP ABAP Lock 的 Collision Check 机制介绍
    SAPABAP系统使用CollisionCheck机制来检查锁请求是否与现有锁冲突。如果发生冲突,对话事务的用户会收到一条消息,指示所请求的对象当前已被不同的用户锁定。注意:对于非对话工作进程(在批量输入中),稍后会再次发出锁定请求。SAP官方文档中对collisioncheck机制的描述:There......
  • 什么是 SAP Lock 机制中的 Lock Table
    SAPABAP系统里,当我们调用SAPLockObject生成的EnqueueFunctionModule对一条数据库表记录上锁时,就会在SAPLockTable中生成一条记录。SAPLock体系中的LockTable位于中央实例的主存(共享内存)中。中央实例中的所有WorkProcess都可以访问锁表。外部应用程序服务......
  • SAP Infinite Transaction with Update 的一个具体例子
    在计算机科学中,事务是一组操作的集合,这些操作要么全部成功执行,要么全部回滚,以确保数据的一致性和完整性。某些企业管理软件的业务事务,被实现为InfiniteTransaction,以节省事务开始时的初始化时间。这种设计离不开乐观锁,因为乐观锁在更改实际发生之前不会转换为排他锁(E锁,全......
  • SAP ABAP 系统 SM51 事务码的作用
    副标题:SAPABAP系统中事务码SM51的作用:深入探究系统进程与资源管理SM51是SAP系统中的一个重要事务码,用于监控和管理系统中运行的后台工作进程和应用服务器资源。在本文中,我将详细解释SM51的功能,探讨其作用,并通过案例说明其在实际场景中的应用。SM51事务码的功能SM51事务......