在 SAP S/4HANA 项目里,组织架构、成本中心树、利润中心层级、产品分类、物料分类以及员工与经理的汇报关系,看起来都是很自然的树形结构。但数据库真正保存这些业务数据时,通常并没有一棵可以直接展开和折叠的树,数据库表里保存的依旧是一行一行的记录。以企业员工组织结构为例,一条员工记录可能只有EmployeeID、ManagerID、Name这样的字段。员工1002的ManagerID是1001,员工1003的ManagerID也是1001。从数据库关系模型的角度看,这只是两行记录引用了另一行记录,并没有什么所谓的树。真正让这些数据变成层级结构的,是父节点和子节点之间反复递归的关系。ABAP CDS 从较新的 ABAP 平台版本开始提供了专门的CDS hierarchy建模能力。SAP 官方文档将一个完整的 CDS hierarchy 拆成三个核心 Repository 对象,也就是底层数据源、带有 self-association 的 CDS view entity,以及通过define hierarchy定义出来的 CDS hierarchy。SAP 官方同时明确说明,self-association 会把当前 CDS view entity 自己作为 association target,由此建立递归的 parent-child relationship。这三个对象如果只看名字