夜里排查一个销售毛利报表,最怕看到的不是一个慢 SQL,而是一串看上去都很合理的 CDS View。最底层从VBAK、VBAP、MARA、MARC抽数据,中间层又接客户、物料、价格条件、工厂、组织架构,再往上堆一个 Consumption View,Fiori Elements 页面打开时,前端只是发了一个 OData 请求,数据库却像被迫走进一张层层叠叠的网。SAP 官方课程里对 ABAP CDS 的描述很清楚,CDS View definition 可以封装可复用的 SQL 逻辑,也可以用 association 表达数据模型关系,并通过 annotation 给上层框架提供语义信息,RAP 也是会消费这些元数据的框架之一。正因为 CDS View 能把 SQL、语义、关联、注解都放在模型层,我们才更容易在这里犯老子所说的毛病,踮脚、跨步、自见、自是、自伐、自矜。(SAP Learning)企者不立,跨者不行;自见者不明;自是者不彰;自伐者无功;自矜者不长。放到 SAP CDS View 开发里,不是在讲玄学,而是在提醒我们,数据模型不能靠姿态站稳,不能靠步子迈大跑远,不能靠开发者自我感觉来证明正确,也不能靠华丽注解和复杂关联来证明水平。一个好的 CDS View,像水一