多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

深入理解 ABAP CDS 的 AMDP Table Function 定义与实现

深入理解 ABAP CDS 的 AMDP Table Function 定义与实现 在实际的 SAP S/4HANA 项目里,经常会碰到一种很尴尬的查询需求。数据明明就在 SAP HANA 里,计算逻辑也非常适合放到数据库层执行,但普通 ABAP CDS 的表达能力偏偏差那么一点。可能需要一个 CDS 暂时不方便表达的 SQL 计算,也可能需要更加复杂的数据重组,还可能希望利用 SAP HANA SQLScript 提供的数据库原生能力。这个时候,CDS Table Function往往就是 ABAP CDS 数据模型和 SAP HANA 原生计算能力之间最实用的一座桥。SAP 官方对 Table Function 的定位也很明确,CDS Table Function 可以把 AMDP 和 ABAP CDS 连接起来,让数据库原生实现返回一个表格结果集,并继续作为其他 CDS Entity 或 ABAP SQL 的数据源。当前 SAP 文档仍明确说明,AMDP Table Function 的实现运行在 SAP HANA 上,并使用SQLScript。真正理解 AMDP Table Function,关键并不是记住几行模板代码,而是把这条调用链看清楚。我们的 ABAP CDS 世界里存在一个CDS Table Function。这个 Table Function 对外声明输入参数和返回字段。它自己并不真正完成计算。真正的实现被绑定到一个 ABAP Class 的静态方法。这个静态方法又不是普通 ABAP 方法,而是一个AMDP Database Function。方法体中的代码也不
返回列表