企业在 SAP S/4HANA 上做分析应用时,经常会碰到一个很现实的问题。SAP 已经交付了一套能够工作的分析模型,业务部门却总会继续提出新的分析维度、新的指标、新的层级结构和新的报表入口。
财务部门原来只要求按照公司代码、利润中心和会计期间分析收入,项目运行几个月以后,又要求增加地区、渠道、客户等级等维度。销售部门原来只看销售额和订单数量,后来又希望增加毛利率、折扣率、订单履约率。管理层甚至可能要求把 SAP 标准分析内容和企业自己的行业属性放在同一个报表里。
传统开发思路很容易走到修改标准对象这条路上。
但在 SAP S/4HANA Cloud、ABAP Cloud 和 Clean Core 的技术体系里,SAP 希望开发人员采用另一种方式。标准对象继续由 SAP 管理,客户自己的需求通过预先设计好的扩展点接入,而且这种扩展关系应该能够跨越系统升级长期存在。
这正是Extend Analytical UI Services背后的核心思想。
SAP 官方文档明确说明,CDS 可以用于扩展 analytical data model,同时保持升级兼容性,并维持整个生命周期中的稳定性。ABAP Cloud 中的应用和服务从设计阶段就把 extensibility 作为内建能力,而 analytical apps 和 analytical services 则主要通过 CDS 数据模型实现这一能力。
这里真正值得研究的并不是某一个 CDS 语法,而是 SAP 对企业应用扩展方式的一次架构转变。
过去的问题往往是,程序已经开发完成,后来才考虑客户怎么扩展。
ABAP Cloud 的思路则是,模型在设计时就必须考虑哪些