在 S/4HANA 时代,业务系统里最贵的资源往往不是 CPU,而是“数据搬运”。一段看似朴素的 ABAP 循环,只要把大表从数据库拉回应用服务器,就可能把吞吐量直接打穿。AMDP(ABAP Managed Database Procedures)这套机制的价值就在于:让你用 ABAP 的类与方法做“外壳”,把真正重的计算留在数据库侧执行,用 SAP HANA 的 SQLScript 把集合运算一次做完,减少网络传输与中间结果落地。

本文聚焦一个非常关键、也最容易被忽略的语法点:在方法实现处用 METHOD ... BY DATABASE PROCEDURE|FUNCTION 声明并实现一个 AMDP 数据库过程或数据库函数。这块内容既影响代码组织方式,也影响静态检查、权限、传输、以及和 CDS table function、RAP、Gateway OData 的衔接。相关语义以 SAP 官方 ABAP Keyword Documentation 为准。 (SAP Help Portal)
下面这段语法骨架属于必须掌握的“肌肉记忆”。它决定了一个普通 ABAP 方法在实现段里如何“变身”为 AMDP: