在 SAP S/4HANA 项目里,经常会碰到一种很有欺骗性的场景。我们打开一个顶层的 CDS View,代码可能只有几十行。SELECT里没有特别夸张的逻辑,甚至只看到几个字段、两三个 association,再加一个WHERE条件。从代码文件本身判断,这个 CDS 看上去相当干净。可是一旦点开 ADT 的 Dependency Analyzer,画面就完全变了。这个 CDS 依赖另一个 CDS,那个 CDS 又依赖三个 CDS,其中两个继续向下依赖更多 interface view,其中某个 view 又访问另外一个 reusable view,reusable view 里面存在 association,而 association target 自身还叠了一层计算逻辑。某个字段一路追到数据库表之前,可能已经跨过十几个甚至几十个 CDS entity。SAP 官方文档明确指出,CDS 最大的能力之一,就是每一个 CDS entity 都可以继续像关系一样被其他 CDS entity 重用,因此可以通过多层堆叠来构造复杂的数据模型。但 SAP 同时提醒,随着层级、表达式、函数、access control 等复杂度增长,CDS 的性能会越来越难预测。SAP Help Portal SEO 优化官网定制响应式建站教育培训建站