ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SAP 增强篇 Method1 BADI增强的查找方法

2019-12-02 23:51:01  阅读:665  来源: 互联网

标签:ME NAME Method1 EXT EXIT SAP 断点 BADI



查找BADI的方法:
(1)通过SE24,输入CL_EXITHANDLER,然后在方法GET_INSTANCE中设置断点,然后运行事务代码判断 exit_name的值,
操作过程如下:
输入se24,然后输入cl_exithandler

 

 

 

找到 GET_INSTANCE 方法,双击get_instance设置断点查看exit_name的值:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

示例:  我们要找PO保存的增强,可以用哪个BADI ?
前台输入 ME21N,进入断点, EXIT_NAME = ME_GUI_PO_CUST

 

 

F8 , EXIT_NAME = GOS_SRV_SELECT

 

 

 F8 , EXIT_NAME = BADI_LAYER

 

 

 

 F8 下一步, EXIT_NAME  =  ME_TAX_FROM_ADDRESS,没往下走一步都有响应的BADI 

还是直接测试到 保存的时候,填好数据,点击保存;

 

 

 

 在类CL_EXITHANDLER的断点里没有停下,原因是:我刚才为了走完,直接到保存的时候再看 EXIT_NAME ,把断点删除了;

OK 再试一次,这回记得在保存之前的一步,再设置断点:
进入断点了;这次  EXIT_NAME   =   ME_INFOREC_SEND

 

 

 我再点击了3次F8 ,得到预期结果:EXIT_NAME  =  ME_PURCHDOC_POSTED  

以前我也没怎么这么正经的取跟BADI ,都是网上找找或者找前辈请教,现在看来,这里面是有很多学问的

 

 

 再下一步是这个

然后运行完:

 

 

 

 

 再用方式

 (2) 通过st05跟踪 找BADI

badi对应的数据表为 SXS_INTER, SXC_EXIT, SXC_CLASS 和 SXC_ATTR,

而这些表都是通过视图 V_EXT_IMP 和  V_EXT_ACT 来查询的。


     1、打开运行事务码: ST05 选择“table buffer trace”而不是常用的"SQL trace"

     2、activate trace(开始跟踪)

     3、运行事务码:me21n

     4、创建一个采购订单,保存

     5、deactivate trace(结束跟踪)

     6、点击display trace,在出来的选择条件中: objects中输入:V_EXT_IMP和V_EXT_ACT;在 operations中输入“OPEN”

 

 

 

 

 7、查询

通过查询的结果可以看出,视图V_EXT_IMP的BADI的接口类名字都是以IF_EX_开头的,其中IF_EX_之后的就是对应BADI接口的定义。

 

 

 

 

 

 PO经常用到的BADI: ME_PROCESS_PO_CUST  ; ME_PURCHDOC_POSTED 

      

因为 ME_PROCESS_PO 仅能在 SAP 内部实施,如果要使用,要做相应的隐式增强(这个有机会可以研究

 

 

 还遇到这个例子,也是仅能内部实施,而且没有 _CUST

 

 

 这个BADI 勾上仅可SAP内部使用了,我想用这个  有办法吗 

这种BADI 直接使用不了,要去查看他有没有实施类,在实施类里做隐式增强

注意:sap的实现类你是不能跳过的,你要看下sap的实施类有没有被调用。然后在增强

 

标签:ME,NAME,Method1,EXT,EXIT,SAP,断点,BADI
来源: https://www.cnblogs.com/rainysblog/p/11974065.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有