
在实际的 SAP S/4HANA 数据模型里,CDS Association 很少只停留在_Customer.CustomerName这种最简单的路径访问上。业务模型一旦进入销售订单、采购订单、产品主数据、文本表、组织结构、业务伙伴这些真实场景,很快就会出现另一类需求。同一个 Association 目标里可能存在多条记录,但当前 CDS 只需要其中某一种语言的文本。某条 Association 在定义阶段是to many,经过语言或者有效期过滤以后却只剩一条记录。某些业务要求关联记录不存在时保留源数据,而另一些业务又要求关联记录不存在时整条数据直接消失。这些问题都落在 ABAP CDS 的 Path Expression 上。SAP 将 Association 描述为实体之间的结构化关系。Association 在声明阶段并不一定立即变成数据库 Join,只有路径真正被消费、目标字段真正进入查询时,系统才会把它实例化为相应的 Join。SAP 官方文档把这种特征称作按需生成 Join 的模型,也就是常说的 join-on-demand。一个最普通的 Path Expression 可能是下面这样。_Item.Product如果继续穿过_ProductAssociation,还可以写成类似下面的结构。_Item