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

摘要:
查找BADI的方法:(1)通过SE24_EXITHANDLER输入CL,然后在INSTANCE中输入GET_Set断点,然后运行事务代码判断exit_名称的操作过程如下:输入SE24,然后输入CL_EXITHANDLER查找GET_INSTANCE方法,双击get_实例设置断点以查看exit_名称值:示例:我们可以使用哪个BADI来查找保存在PO中的增强?在前台输入ME21N,


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

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

 SAP 增强篇 Method1 BADI增强的查找方法第2张

SAP 增强篇 Method1 BADI增强的查找方法第3张

SAP 增强篇 Method1 BADI增强的查找方法第4张

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

SAP 增强篇 Method1 BADI增强的查找方法第5张

F8 , EXIT_NAME = GOS_SRV_SELECT

SAP 增强篇 Method1 BADI增强的查找方法第6张

 F8 , EXIT_NAME = BADI_LAYER

 SAP 增强篇 Method1 BADI增强的查找方法第7张

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

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

 SAP 增强篇 Method1 BADI增强的查找方法第8张

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

OK 再试一次,这回记得在保存之前的一步,再设置断点:
进入断点了;这次  EXIT_NAME   =   ME_INFOREC_SEND
SAP 增强篇 Method1 BADI增强的查找方法第9张

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

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

SAP 增强篇 Method1 BADI增强的查找方法第10张

 再下一步是这个

SAP 增强篇 Method1 BADI增强的查找方法第11张然后运行完:SAP 增强篇 Method1 BADI增强的查找方法第12张

 再用方式

 (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(开始跟踪)

SAP 增强篇 Method1 BADI增强的查找方法第13张

     3、运行事务码:me21n

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

     5、deactivate trace(结束跟踪)

     6、点击display trace,在出来的选择条件中: objects中输入:V_EXT_IMP和V_EXT_ACT;在 operations中输入“OPEN”SAP 增强篇 Method1 BADI增强的查找方法第14张

 7、查询

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

SAP 增强篇 Method1 BADI增强的查找方法第15张

 SAP 增强篇 Method1 BADI增强的查找方法第16张

 PO经常用到的BADI: ME_PROCESS_PO_CUST  ; ME_PURCHDOC_POSTED 

      

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

SAP 增强篇 Method1 BADI增强的查找方法第17张

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

SAP 增强篇 Method1 BADI增强的查找方法第18张

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

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

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

免责声明:文章转载自《SAP 增强篇 Method1 BADI增强的查找方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇实现一个双缓冲队列ORA-01653: 表 xxxx 无法通过 8192 (在表空间 USERS 中) 扩展下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

fiddler(12)断点

概况:包括全局断点,和局部断点全局:通过:Rules -- automatic breakpoints -- before Requests or after responses全局断点:针对全局的接口都有效局部:命令行,bpu(前)+ keyWordStr / bpafter(后) + keyWordStr取消局部断点:bpu 不加参数, bpafte...

linux下调试C程序

正文:==================GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。于是UNIX下的软件比Windows下的软件更能...

Vue中进行断点调试的两种方式(使用外部浏览器和VsCode Debug for Chrome 插件)

场景 在使用IDEA等进行后台开发时可以直接在想要进行断点调试的地方双击添加一个断点,然后逐步或者逐过程进行调试。 但是在Vue中如果想要进行调试时,如果是在js中调试的话,可以直接添加一个debugger,然后在浏览器中打开检查进行断点调试。 但是如果在vue界面的话则没法逐步查看变量的值。 比如: 在Vue页面中,点击搜索按钮时 <el-butt...

ArcGIS AddIn开发笔记(一)

学习AddIn开发,遇到了些稀奇古怪的问题,网上的资料少之又少。 (1)AddIn开发,主要是通过ArcMap静态变量,与主程序中的数据等进行交互 (2)failed to register Add In .esriAddIn异常,此类异常为Visual Studio中项目名称或者类名称中出现了中文名 (3)AddIn个人觉得很不稳定,第一次写完一个Too...

Arch/GentooLinux开发环境构建与常用软件一览

编辑器 Emacs Arch Linux yay -S clang emacs Gentoo Linux sudo emerge --ask clang emacs visual-studio-code Gentoo Linuxsudo emerge --ask app-editors/visual-studio-code sublim...

iOS调试

iOS高效调试 写代码难免出现bug。储备些调试技能绝对能够提高你的工作效率,让bug无所遁形。下面就和大家分享一些我在工作中常用的iOS调试小技能。 1. 打印 最简单,基础的调试方法就是打印日志了。贴出封装好的日志打印代码: #ifdef DEBUG      #define DLog(fmt, ...) NSLog((@"<%s : %d>...