二维码

[三代] SAP第三代增强BADI的实现方法及查找方式  

Twilight发表于 2014-05-02 19:11qincai1928 最后回复于 2023-11-02 14:58 [复制链接] 35059 73

一、Business Add-Ins实现方法
进入事务SE19,选择Create Implementation中的Classic BADi,输入事先查找到的EXIT_NAME,这个EXIT_NAME是在SE18事务中存在的东西;
图-14-1 创建BADI实现.jpg
点击Create Impl,输入实现名称后点击确定
图-14-2 创建BADI实现.jpg
图-14-3 创建BADI实现.jpg
点击保存,激活(如果是ECC6.0及以上版本,则还需要指定对应的Enhancement Spot,才可以完全创建成功,这个可能是为了保证NEW BADI的向上兼容而采用的一种方法)。
图-14-4 创建BADI实现.jpg
双击进入方法 CHANGE_SEGMENT_PSEGMENT,即可在里面实现功能;
图-14-5 创建BADI实现.jpg
下面再运行F-02记账,执行程序,即可进入此段代码。
图-14-6 创建BADI实现.jpg

二、查找方法
方法1:用事务SE24打开类CL_EXITHANDLER,因为在ABAP中的BADI执行前都要执行此类的一个GET_INSTANCE方法来判断BADI定义是否已经实现,如果已实现并处于激活状态,则BADI实现中的客户代码将会被执行。
图-15-1 查找BADI.jpg
双击GET_INSTANCE方法
图-15-2 查找BADI.jpg
在CASE SY-SUBRC处设置断点
图-15-3 查找BADI.jpg
运行业务事务,如ME21N,在断点处查看EXIT_NAME,就是你所要找的BADI定义。然后在表SXC_EXIT中就可以查找该定义是否已实现,若已实现,可以看到实现名称。
图-15-4 查找BADI.jpg

方法2:通过st05跟踪,badi对应的数据表为 SXS_INTER, SXC_EXIT, SXC_CLASS 和 SXC_ATTR,而这些表都是通过视图V_EXT_IMP 和 V_EXT_ACT来查询的。  
  • 打开运行事务码: ST05选择“table buffer trace”而不是常用的"SQL trace"
  • activate trace(开始跟踪)
  • 运行事务码:me21n
  • 创建一个采购订单,保存
  • deactivate trace(结束跟踪)
  • 点击display trace,在出来的选择条件中: objects中输入:V_EXT_IMP和V_EXT_ACT;在 operations中输入“OPEN”
  • 查询

ST05追踪操作,然后输入条件过滤
图-16-1 ST05跟踪法查找BADI.jpg
通过查询的结果可以看出,视图V_EXT_IMP的BADI的接口类名字都是以IF_EX_开头的,其中IF_EX_之后的就是对应BADI接口的定义。  
图-16-2 ST05跟踪法查找BADI.jpg

方法3:找到需要增强T-code的程序代码,然后SE38在程序中搜索关键字CL_EXITHANDLER
CL_EXITHANDLER.jpg
其中的exit_name就是这个程序的所有BADI出口,然后根据描述找到正确的。

我们根据以上3中方法,是能找到很多个BADI的,那么怎样才能判断哪个是我们需要的呢?
1、排除法:
游客,如果您要查看本帖隐藏内容请回复

2、根据BADI描述猜测
根据以上方法可大幅缩小范围,然后se18查看BADI描述,大致判断是否是想要找的
3、BREAK-POINT精确定位
回复

使用道具 举报

kinglvcha
总要回复???才能看隐藏。。。
回复 支持 反对

使用道具 举报

mckz8888
学习 学习
回复

使用道具 举报

Suggestion
感謝啊!講得很清楚
回复 支持 反对

使用道具 举报

晓月之影
顶一下看看
回复 支持 反对

使用道具 举报

lg1999f
图文并茂,不错。
回复 支持 反对

使用道具 举报

资明
我想看看啊!!!
回复 支持 反对

使用道具 举报

Anda
学习了,整理得很系统
回复 支持 反对

使用道具 举报

fayne
学习下
~~~~
回复

使用道具 举报

scofield1106
article is good !!!
回复 支持 反对

使用道具 举报

蜡笔小新
学习 学习!!
回复

使用道具 举报

slayer

感謝啊!講得很清楚
回复

使用道具 举报

TaKeThat
学习中,谢谢分享
回复

使用道具 举报

ratg0626

RE: SAP第三代增强BADI的实现方法及查找方式

很不错  有帮助
回复 支持 反对

使用道具 举报

JULYsses

RE: SAP第三代增强BADI的实现方法及查找方式

....................
回复

使用道具 举报

494939637

RE: SAP第三代增强BADI的实现方法及查找方式

谢谢分享  了解一下
回复 支持 反对

使用道具 举报

JYL

RE: SAP第三代增强BADI的实现方法及查找方式

学习一下,顶一个!
回复

使用道具 举报

xiaoyuer

RE: SAP第三代增强BADI的实现方法及查找方式

认真学习天天向上,努力工作
回复 支持 反对

使用道具 举报

xiaoyuer

RE: SAP第三代增强BADI的实现方法及查找方式

认真学习天天向上,努力工作
回复 支持 反对

使用道具 举报

crazyrocker

RE: SAP第三代增强BADI的实现方法及查找方式

拜读您的文章,非常感谢
回复 支持 反对

使用道具 举报

1234下一页

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表