BAdI是SAP在标准程序中,为客户自定义逻辑所预留的接口(属于第三代增强),在技术本质上是一个interface,通过实现类的向上继承,完成用户逻辑的调用。
操作BAdI的事务代码:
- SE18:定义BAdI, 查看BAdI的相关属性。
- SE19: 实现BAdI,查看BAdI的相关实现。
通常所说的BAdI有两种类型, -
- Classic BAdI (其在运行时进行实例化), 也称old BAdI;
- Kernel BAdI (其在编译时便进行实例化), 也称new BAdI; .
Classic BAdI和Kernel BAdI在系统中的定义方式、程序中的调用方式是不同的。
对于Classic BAdI, 其定义是通过SE18 >> Utilities >> Create Classic BAdI来进行的。

Classic BAdI通过CL_EXITHANDLER=>GET_INSTANCE来获取实例,然后通过实例来调用Interface中的方法。示例代码如下:
" 对于classic BADI, 其应使用CL_EXITHANDLER=>GET_INSTANCE来获得实例 DATA: lo_custom_adj TYPE REF TO zif_badi_interface_name. DATA: lv_imp_exist TYPE c. CALL METHOD CL_EXITHANDLER=>GET_INSTANCE EXPORTING exit_name = 'OLD_BADI_NAME' " BAdI name null_instance_accepted = '' IMPORTING act_imp_existing = lv_imp_exist CHANGING instance = lo_custom_adj " type ref to BAdI's interface EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. ENDIF. IF lv_imp_exist IS NOT INITIAL. lo_custom_adj->badi_method( ). ENDIF.
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/31175.html