本文讲解了如何使用另外一种更加高效的的数据源增强方式,RSU5_SAPI_BADI. 使用CMOD 的方法会产生巨大的INCLUDE 文件,并且无法协同作业,一旦
CMOD 被锁定,其他开发人员无法使用RSAP0001.使用ABAP OO 的BADI RSU5_SAPI_BADI就避免这些问题的发生。本方法略去了增加字段到数据源的方法,因为与CMOD的方法完全相同。
1,创建BADI RSU5_SAPI_BADI 的实现(做名词理解,原文为implementation),这里的实现和面向对象语言的概念相同。 到SE19,按图所示。实现命名为 ZC_RSU5_SAPI_BADI,这里的命名一般要包括BADI 的全称,以便后期识别。
2 当你创建实现的时候,系统自动创建了一个以ZCL_IM_+(去掉Z的实现名称),本例中就是 ZCL_IM_C_RUS5_BADI.双击此类名称,进入CLASS BUILDER(SE24)亦可进入。
3 此时可以看拿到两个方法的名称,分别为 IF_EX_RSU5_BADI~DATA-TRANSFORM 和IF_EX_RSU5_SAPI_BADI~HIER_TRANSFORM.前面的是用来填充数据源的,后一个是用来增强层级的(可以通过SAP NOTE 691154详细了解)。
4 IF_EX_RSU5_BADI~DATA-TRANSFORM 可以用填充数据源