从 OData 元数据到多语言注解,深入理解 /IWBEP/CL_MGW_ABS_MODEL 与 GET_VOCAN_TEXTS 在一个经典的SAP Gateway项目里,如果沿着$metadata请求一路调试到MPC,很容易碰到/IWBEP/CL_MGW_ABS_MODEL。这个类平时存在感并不算高,因为SEGW生成的模型提供者类已经把大量框架细节封装起来了。但只要问题开始涉及OData Vocabulary Annotation、字段文本、多语言元数据,或者注解中的字符串到底从哪里来的,/IWBEP/CL_MGW_ABS_MODEL就绕不开了。尤其是它的GET_VOCAN_TEXTS方法,看起来只有三个参数,逻辑似乎也很简单,却恰好位于OData模型定义、多语言资源和最终$metadata输出之间。理解这个方法,能够把很多平时看起来彼此独立的东西连起来,包括MPC、DDIC Data Element、文本元素、Vocabulary Annotation、登录语言,以及自定义文本仓库。SAP 官方把/IWBEP/CL_MGW_ABS_MODEL定义为Model Provider Class的抽象基类,每一个具体的模型提供者实现都应该从它派生。这个类拥有一个非常关键的成员MODEL,它是构造OData Channel数据模型的入口。应用实现的DEFINE方法,就是围绕这个模型