ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从 Association 到 LEFT OUTER JOIN,彻底理解 ABAP CDS 中 Association 的使用机制

从 Association 到 LEFT OUTER JOIN,彻底理解 ABAP CDS 中 Association 的使用机制 在 SAP S/4HANA 的数据模型里,一个很常见的开发场景,是当前 CDS View Entity 保存着业务对象自己的核心字段,但页面、OData 服务或者上层 CDS 又希望顺手拿到另一个业务对象中的描述性字段。销售订单里保存了SoldToParty,页面却希望直接显示客户名称。采购订单里保存了Supplier,报表又希望同时看到供应商名称。物料主数据里保存了Product,Fiori 页面需要显示对应语言下的产品描述。传统 SQL 的思路非常直接,开发人员会在 SQL 中写一个JOIN,把两张表或者两个视图连接起来。ABAP CDS 提供了一种更适合语义化数据模型的表达方式,也就是Association。Association并不是另一套完全脱离 SQL 的数据库机制。SAP 官方文档把它描述成实体之间的结构关系,也可以理解成一种提前声明、按需实例化的JOIN。只有当当前 CDS 真正通过路径表达式访问关联目标中的数据时,这个关联才需要落实为数据库层面的连接。SAP 经常把这种行为称为join-on-demand。这也是理解Using Associations时最关键的一条线索。我们声明Association时,是在告诉 CDS 数据模型,当前实体与另一个实体存在怎样的关系。真正使用_Customer.CustomerName、_ProductText
返回列表