在 SAP 系统里打开SE11,查看一个再普通不过的 Data Element,很容易产生一种错觉,Data Element 好像只是给数据库字段起了一个更有业务含义的名字。字段原来是CHAR,给它套一个ZCUSTOMER_ID,再维护几组 Field Label,看起来工作也就结束了。
真正进入大型 S/4HANA 项目以后,这种理解很快就会遇到问题。
Data Element 并不是简单的字段别名。它处在 ABAP 类型系统、DDIC 元数据体系、数据库表定义、ABAP 程序静态类型和业务语义之间。尤其是它的 Technical Properties,一旦理解不清,很容易把 Data Element、Domain、ABAP Built-in Type、数据库列类型、Reference Type 混在一起。
SAP 当前的 ABAP Keyword Documentation 对 Data Element 的定义非常准确。Data Element 描述的是一个 Elementary Data Type 或 Reference Type,同时还可以携带 Documentation、Text Label 等语义属性。对于 Elementary Type,类型属性既可以直接定义在 Data Element 上,也可以来自 Domain。
理解这件事,一个很合适的入口就是 SAP 标准里的S_CONN_ID。
在经典 Flight Model 中,SPFLI、SBOOK、SFLIGHT等表都有