ABAP 动态编程全景参考,从 Field Symbol 到 RTTI、RTTC 与动态调用
在很多 S/4HANA 项目里,ABAP 代码并不总是面对一个完全确定的世界。一个采购增强里可能要按配置读取不同字段,一个财务报表可能要根据用户选择拼出不同查询列,一个数据迁移工具可能要在运行时才知道目标结构,一个 RAP 服务的辅助类可能要把不同实体的字段统一转换成日志文本。静态类型当然是 ABAP 程序最稳的底座,但只靠静态写法,有些场景会写成大量重复代码,维护成本也会像老系统里的隐式增强一样越积越厚。
ABAP 动态编程就是在这种缝隙里出现的。它不是为了炫技,也不应该成为逃避建模的工具。它真正适合解决的问题,是运行时才知道名称、字段、类型、组件、方法、函数模块或 SQL 片段的场景。SAP 官方的 ABAP cheat sheets 把动态编程放在 field symbol、data reference、动态 ABAP 语句、RTTI 与 RTTC 这几条主线下讲解,并且说明这些内容关注 ABAP 语法与可执行示例,尤其覆盖 ABAP for Cloud Development 与 SAP BTP ABAP environment 语境。(GitHub)
动态编程的美感在于灵活,危险也在于灵活。编译器无法像检查静态SELECT、静态方法调用、静态字段访问那样提前把所有问题拦住。很多错误只会在运行时爆出来,性能也会受到一定影响
