
在一个稍微复杂一些的 SAP S/4HANA 项目里,很少会只写一个 CDS View Entity,就把数据库表读取、业务语义、计算逻辑、文本关联、权限控制、OData 暴露和 Fiori 消费全部塞进去。实际的数据模型更像一组相互协作的积木。底层的 View Entity 负责把数据库表转换成具有业务含义的数据实体,中间层继续组合、计算和关联,上层再面向某个应用场景暴露需要的数据。例如销售订单模型里,底层可能有ZI_SalesOrderItem,负责表达销售订单行项目。上面再建立ZI_SalesOrderItemAmount,统一计算净额、税额和毛额。再往上建立ZC_SalesOrderItem,面向 RAP Service Definition 或 Fiori Elements 暴露最终需要的字段。这里已经出现了一个非常核心的 ABAP CDS 建模能力,也就是 View Entity 的嵌套。SAP 官方对这种模式给出的定义很直接,一个 View Entity 可以把另外一个或者多个 View Entity 作为自己的数据源,这种模式被称为nesting of view entities。SAP 甚至没有为这种嵌套规定一个固定的技术层数上限。不过,技术上没有硬性上限,与项目里可以无限堆叠,是两回事。真正理解 View Entity 嵌套,不能只停留在View A select from View B这一层语法。它背后牵涉的是整个 CDS 数据模型如何拆分、如何复用、Annotation 怎样沿着模