补充或更改缺省数据 (工厂)
u 寻找已定义的BADI:
可以通过SPRO或SE18查询.
SPRO从增强里可以看到,比如在创建物料主记录更改默认值的BADI的路径为:
SPRO->后勤 - 常规->物料主记录->增强->补充或更改缺省数据 (工厂).
Definition name BADI_MATERIAL_REF.
Implementation name是做客制化时创建的.
u BADI定义
1.SE18。
2.输入要创建的BADI的名字,点击"Create"。
3.输入BADI的描述性文本,在"Interface"选项卡上输入接口的名字,也可以采用SAP建议的接口的名字。同时,BADI类也会被创建。
例如:对于BADI "ZTEST",SAP会建议"ZIF_EX_TEST"作为接口的名字,"ZCL_EX_TEST"作为类的名字。
4.保存BADI。
5.双击接口的名字,会跳转到Class Builder界面,在这里你可以定义接口的方法。
6.保存并激活接口。
u 在应用程序中调用BADI
1.声明一个BADI接口的参考引用变量。
例如:DATA exit_ref TYPE REF TO zif_ex_test.
2.调用类CL_EXITHANDLER的静态方法GET_INSTANCE,将返回一个请求对象的实例。
例如:
CALL METHOD CL_EXITHANDLER=>GET_INSTANCE
CHANGING instance = exit_ref。
3.现在你可以调用BADI的所有方法了
u BADI实现
1,SE19;
2,在Implementation name输入名称: ZIF_EX_MM01DEF_001(Z(客制化程序的开头字母)+IF(INTERFACE接口)+_+EX(EXIT)+_+MM01(起作用的TCODE)+DEF(DEFAULT实现的功能)) 点击创建;
3,输入BADI定义的名字Definition name BADI_MATERIAL_REF
4,在Implementation short text输入信息,如: 创建主数据时修改默认值
5,激活
6,输入开发类,如:ZMM.
这时一个客制化的BADI就实现了,它继承了BADI_MATERIAL_REF的参数和方法.在其方法CREATE_MATERIAL中写入代码,就可以通过更改参数的值达到修改主数据默认值的目的.其中EXPORTING和Changing的参数可以更改, Importing参数不能进行更改.