在 SAP ABAP CDS 开发中,大部分数据读取需求都可以通过define view entity、Association、表达式、聚合函数以及 CDS 内置函数完成。真正让开发人员感到棘手的,往往不是普通的表关联,而是那些已经明显触碰 CDS 表达能力边界的数据处理。典型场景包括复杂的 SQL 计算、某些 SAP HANA 原生函数、需要窗口化处理的数据、数据库侧特殊日期计算,以及希望把一段只能使用 SQLScript 描述的逻辑重新包装成 CDS 数据源的需求。这个时候,CDS Table Function 就进入了视野。它与普通 CDS View 最大的不同,在于数据并不是直接由 CDS DDL 中的一条select from语句产生,而是由一个 AMDP 方法在 SAP HANA 数据库中执行 SQLScript,再把结果作为一张逻辑表返回给 CDS 世界。从调用关系来看,可以把它理解成下面这条链路。CDS consumer → CDS Table Function → AMDP method → SAP HANA SQLScript → database objectsSAP 官方当前文档同样把 CDS Table Function 定义为一种把数据库原生函数引入 CDS 的机制。Table Function 返回表格式结果,可以继续作为其他 CDS Entity 的数据源,而真正的数据处理逻辑由 AMDP 在数据库端执行。因此,学习Defining CDS Table Functions时,真正需要掌握的并不只是