引言
项目中可能常用的增强点是USMD_RULE_SERVICE来实现复杂的校验逻辑,除此之外,SAP对BP主数据还提供了以下的实现方式。
方法1-替换ERP校验类
众所周知,BP存在复杂的ERP校验,主要通过类CL_MDG_BS_FND_BP_CHECK(子类)或CL_MDG_BS_ECC_BP_CHECK(父类)实现,通过继承这两个类其中的一个(子类优先),实现客制的校验逻辑,然后通过隐式增强类CL_MDG_BS_BP_CHECK_FACTORY的方法GET_CHECK_CLASS_NAME,替换为自己的Z class即可;需要注意的是,在Z class中,重定义的方法必须实现对super class的调用,否则会失去标准校验。
方法2-自定义MDG处理类
MDG BP在底层的交互,会调用实现特定接口IF_MDG_BS_BP_ACCESS_HANDLER的类(handler class)实现,标准清单如下。
上图可观察到自定义的处理类 Z*,继承标准类CL_MDG_BS_ECC_HANDLER即可;然后在SM30中维护视图V_MDG_BS_BP_HDL。
后记
本文自参考NOTE:2308424 - MDG-BP/C/S: Implementing Custom Validations,更多详细信息请查看SAP帮助网站。