现在的位置: 首页 > 综合 > 正文

abap bapi badi 有什么区别?

2013年02月04日 ⁄ 综合 ⁄ 共 579字 ⁄ 字号 评论关闭

BAPI 是函数,你可以输入T-code:BAPI,查找系统里的bapi函数。比如采购申请的审批的勾打上,就可以调用bapi函数来实现。
BADI 是abap的一种增强,他的调用方式是CALL METHOD (instance),(相关的TCODE是SE18和SE19),你可以通过EXIT_HANDLER这个单词查找BADI。
创建增强有多种方法,用CMOD可以创建,用spro也可以创建。也正在学习中。

网上有这段:
针对BADI的增强

 1、badi对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 这四个表中。

 2、sap程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表和他们的视图(V_EXT_IMP 和 V_EXT_ACT)进行查询和搜索。

 3、基于这个机理,我查用ST05来监控一个TCODE来跟踪,然后选择查找有关上述几个表和视图的操作,就可获得相关BADI。

 4、se18 查找接口,se19 实现接口就可以实现用户增强。

如何查找BADI:(如下)

1. SE24 输入 cl_exithandler,点display
2. 双击方法GET_INSTANCE
3. 在line 14 设置断点
4. 运行MIGO,在debug模式下查看exit_name

抱歉!评论已关闭.