ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

从 JOIN 到 join-on-demand,深入理解 ABAP CDS Association 与 Composition

2026/10/8 14:29:22 拓冰建站 浏览量
从 JOIN 到 join-on-demand,深入理解 ABAP CDS Association 与 Composition 在 SAP S/4HANA 的数据模型里,经常会遇到一个很典型的需求。Travel 数据里保存了AgencyID,而旅行社名称、所在国家、联系方式等信息放在另外一个 Agency 实体里。传统 SQL 的处理方式很直接,在查询 Travel 时写一个JOIN,把两张表或者两个视图连接起来。到了 ABAP CDS,这种关系有了一种更适合企业级语义模型的表达方式,也就是 Association。Association 不能简单理解成另一种写法的JOIN。从数据库执行层看,Association 在真正被使用时确实会被转换为JOIN。但从 CDS 数据建模层看,它表达的是实体之间可以被复用、可以被继续暴露、可以通过 path expression 导航的结构关系。SAP 官方把这种关系描述为一种类似 forward-declared join 的机制,也就是连接关系已经定义好了,但并不会因为定义存在,就要求每一次访问当前实体时都去读取目标实体。SAP Help Portal这一区别正是理解 ABAP CDS Association 的入口。假设我们的系统里有旅行订单表ztravel_hdr和旅行社主数据表zagency。旅行订