
最近在维护传统 SAP 报表时,经常会碰到一种很有年代感的代码。程序开头先声明几十个工作区和内表,读取一行数据需要READ TABLE,填充结构需要逐字段赋值,拼接消息需要CONCATENATE,构造内表需要反复CLEAR、赋值和APPEND。业务逻辑可能只有十几行,辅助性代码却铺满整个屏幕。同一段逻辑放进较新的 ABAP Platform,代码会呈现完全不同的面貌。变量可以在使用位置声明,结构和内表可以通过表达式直接构造,内表行能够像数组元素一样读取,条件分支可以直接产生值,字符串能够嵌入变量和函数调用,循环转换也可以写进VALUE、FOR、FILTER或REDUCE表达式中。因此,ABAP 不但存在类似 JavaScript syntactic sugar 的能力,而且现代 ABAP 中相当一部分语言演进,正是在减少样板代码、强化类型推导和提升表达能力。不过,SAP 官方文档并没有建立一个名为 syntactic sugar 的统一语法分类。官方使用的术语包括 inline declaration、constructor expression、table expression、string template、conditional expression 和 iteration expression。SAP 官方的 ABAP Cheat Sheets 也明确指出,构造表达式能够用更少的语句完成相同任务,使代码更加精炼,但同时提醒开发团队关注可读性、可维护性和调试难度。