尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

从 ABAP CDS 到 SAP HANA SQLScript,深入理解 CDS Table Function 与 AMDP 的数据库下推机制

从 ABAP CDS 到 SAP HANA SQLScript,深入理解 CDS Table Function 与 AMDP 的数据库下推机制 在 SAP S/4HANA 项目里写数据访问逻辑时,经常会碰到一个很微妙的边界。一个需求刚开始看起来很适合用 ABAP CDS 实现,几个表做 Association,再加一些 CASE、CAST、聚合函数,很快就能写出来。可随着业务规则逐渐复杂,开发人员会发现,某些在 SAP HANA SQL 里很普通的能力,在纯 ABAP CDS 里却没有直接对应的表达方式。这时候问题就出现了。继续在 ABAP 层读取大量数据,再通过 LOOP、SORT、READ TABLE 做二次加工,显然会削弱 SAP HANA Code Pushdown 的价值。直接在数据库里创建 Native HANA Procedure 又会让开发对象脱离 ABAP Repository 生命周期,对传输、版本管理、依赖关系和后续维护都不友好。SAP 为这个问题提供的桥梁,就是 CDS table function 和 AMDP。SAP 官方对这一机制的描述非常明确,CDS table function 可以调用在数据库原生实现的函数,而它的具体实现依托 ABAP Managed Database Procedures,也就是 AMDP。Table function 返回一个表结构结果,可以继续作为其他 CDS entity 的数据源。这套机制非常重要,因为它连接了两个原本有明显边界的世界。一边是 ABAP CDS 的声明式数据模型。另一边是 SAP HANA SQLScript 的数据库原生计算能力。理解 SAP HANA SQL queries 在 ABAP 里的真正价值,关键也就在这里。
返回列表