Tcode :CMOD 新建一个项目(project)用于实现用户增强。
"Enhancement assignments" 输入要增强的程式(如:SZRS0003),"components"对应试一个增强程式可以查看有几个的出口(如:EXIT_SAPLSZAR_001,系统定义的标准出口)。双击出口Function (EXIT_SAPLSZAR_001)跳到ABAP编辑,在INCLUDE ZXSZARU01 .输入增强代码。
激活新的CMOD项目,一个传统的用户增强完成,测试增强。
下面是使用BADI实现用户增强:
Tcode:SE18定义BADI (如:ZENH_SZRS0003)。属性中选中"multiple use"可以有多个的接口实现。接口定义接口(如ZIF_EX_ENH_SZRS0003),双击接口名称,保存定义进入输入接口类别制作器(class builder -SE24,BADI接口类实现还是最好由SE18中通过接口名称跳转进入。)
Tcode:SE24类别制作器,此由SE18跳转进入。输入方法名称与级别(method name and level),级别为“Static”,定义方法的输入输出参数,保存并激活则BADI定义完成,回到SE18画面。
Tcode:SE18还是在SE18画面,此做接口的实现。在初始画面,菜单Implementation->create新建一个(如果前面“multiple use”选中,可以建多个实现),进入后输入实现名称,双击实现再次跳转到SE24实现类别(BADI imlementation's class)。“CODE”代码实现接口的方法。最后BADI实现完成。
最后在EXIT_SAPLSZAR_001 (INCLUDE ZXSZARU01)出口中调用BADI接口类ZIF_EX_ENH_SZRS0003调用做增强。调用代码如:
data: lr_exit type ref to ZIF_EX_ENH_SZRS0003,"定义的接口类别
y_error_table type ERROR_TABLE.
y_adrc_struc = x_adrc_struc.
CALL METHOD cl_exithandler=>get_instance "取得接口实例
CHANGING
instance = lr_exit.
CALL METHOD lr_exit->address_check "到过接口实例调用出口实现的方法完成
EXPORTING
x_dialog_allowed = x_dialog_allowed
x_accept_error = x_accept_error
x_adrc_struc = x_adrc_struc
CHANGING
y_adrc_struc = y_adrc_struc
y_retcode = y_retcode
error_table = error_table.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9333231/viewspace-376660/ ,如需转载,请注明出处,否则将追究法律责任。