在一个运行了十几年甚至二十年的 SAP 系统里,经常可以看到这样的 DDIC 对象,名字是ZTT_ORDER_ITEM、ZTT_MATERIAL、ZTT_RESULT,技术定义完全没有问题,激活正常,程序也跑得很好,可是一旦打开SE11或 ADT 查看它们,真正麻烦的事情就出现了。Short Text只有一句Table Type,Documentation 是空的,几个 Secondary Key 的描述也只是Key 1、Key 2。程序当然不会因此 Dump,数据库也不会因此变慢,可半年以后再回来看这些对象,开发人员往往必须重新阅读 Line Type、Primary Key、Secondary Key,再反向搜索几十处调用代码,才能猜出这个 Table Type 当初为什么存在。
这恰好说明了 ABAP Dictionary 设计里一个经常被低估的东西,Semantic Properties。
SAP 官方文档把 DDIC Data Type 看成全局数据类型。Data Element、DDIC Structure 和 DDIC Table Type 都属于这一体系,其中 Table Type 用于描述 ABAP Internal Table。DDIC Data Type 除了 Technical Properties 之外,还能够携带 Documentation、文本以及其他 Semantic Information。
这里的 Technical 和 Semantic 必须分清楚。