CDS Table Function 的真正优势,从 ABAP CDS 能力边界走向 SAP HANA 原生计算
在实际的 SAP S/4HANA 开发项目里,ABAP CDS很容易给开发人员一种感觉,只要数据模型设计得足够好,似乎所有读取、关联、聚合和计算需求都可以一直写在CDS View Entity里面。这种感觉在大部分业务场景中并没有问题。普通的Join、Association、字段计算、聚合、参数化查询、权限控制、语义注解以及面向RAP或OData的数据建模,都可以很好地留在ABAP CDS层。尤其进入SAP S/4HANA和ABAP Cloud时代以后,越来越多业务模型开始以CDS为核心,ABAP CDS已经不只是数据库视图的另一种写法,而逐渐成为业务语义模型的重要组成部分。真正的问题出现在业务计算超过CDS表达能力的时候。有些计算用普通CDS可以表达,但会变得异常别扭。有些计算依赖SAP HANA SQL的专有函数。有些需求需要复杂的集合处理、窗口式计算、日期计算或者数据库原生算法。有时还需要利用SQLScript中已经存在的能力,而这些能力并没有对应的ABAP CDS语法。这个时候,CDS table function就开始体现价值。SAP 对它的定位非常明确,