SAP 增强篇 Method1 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的实施类有没有被调用。然后在增强

原文地址:https://www.cnblogs.com/rainysblog/p/11974065.html

时间: 2024-08-01 08:26:39

SAP 增强篇 Method1 BADI增强的查找方法的相关文章

SAP S4/HANA BP屏幕增强添加自定义字段(BDT方式)

喜欢博主的读者也许会意识到,这是本博客中第一篇有关屏幕增强的文章.之前没有总结过相关的东西,除了因为相关经验有限之外,我个人也是不喜欢所谓dynpro编程的,它有许多“潜规则”一样的东西要记住,想要运用熟练,就需要花些力气去学,而它又十分老旧,在SAP的发展路线中处于即将被淘汰的地位..即便学成,可能也没什么用处. 但是在S4开始普及的这段时间里,我们毕竟还是使用着GUI.过去的供应商.客户的事务代码被废弃,相关的功能被整合到事务代码BP(Business Partner)中,因此相应的增强也要

20170520 BADI增强学习

一.要求:Tcode:FF_5 导入数据运行时,产生财务凭证之前修改某些字段值.Exmp:FEBRE-VWEZWBKPF-XBLNRFEBEP-CHECTBSEG-ZUONR there is a business Add-in(BADI) with the definition name FEB_BADI thatis called immediately before the standart posting in program RFEBBU00.In the case, you can

SAP订单编排和流程增强概述

SAP产品里的订单处理,无论是On-Premises解决方案还是云产品,我认为归根到底可以概括成四个字:订单编排,包含两个层次的内容: 1. 单个订单通过业务流程或者工作流驱动的状态迁移: 2. 多种订单类型协同工作,完成一个完整的端到端的业务员流程. 比如SAP CRM里经典的User Status(用户自定义状态)和System Status(SAP标准状态)的设计,通过引入Business Transaction将两者关联起来,完美地实现了用户自定义订单状态被SAP标准程序的感知. 下图左

ES6学习一 JS语言增强篇

一 背景 JavaScript经过二十来年年的发展,由最初简单的交互脚本语言,发展到今天的富客户端交互,后端服务器处理,跨平台(Native),以及小程序等等的应用.JS的角色越来越重要,处理场景越来越复杂.在这个背景下,JS最初的简陋设计显然是不太够用的,其松散的语法规则,拗口的继承机制(传说中的6种继承方法),无命名空间,模块化,以及异步处理的回调地狱等等特性在开发过程中容易成为开发人员的各种痛点,各个JS框架比如jQuery,SeaJs,等等为了这些问题也是操碎了心.不过随着JS语言的发展

PP生产订单的BADI增强 WORKORDER_UPDATE

METHOD if_ex_workorder_update~before_update. *---------------------->增强1 开始* "当生产订单类型为PP01时,如果该生产订单有参考相关的销售订单,* "那么在此生产订单存盘时,就需要判断该生产订单是否已经维护了相关的长文本数据,如果没有长文本数据,就需要查看* "所对应的销售订单行项目上是否有长文本数据,如果有则将销售订单行项目的长文本带到该生产订单长文本中.* "反之,如果此生产订单已

SD 销售订单的BADI增强SD_BADI_PRICE_CHECK

METHOD if_ex_badi_sd_sales~save_document.* CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'* EXPORTING* titel = '庆祝'* textline1 = '系统成功上线!'* textline2 = '热烈庆祝!'* start_column = 25* start_row = 6. ENDMETHOD. SD 销售订单的BADI增强SD_BADI_PRICE_CHECK

ME21N,ME22N,ME23N之BADI增强ME_PROCESS_PO_CUST

一.需求背景:采购订单创建.修改时,根据所选订单类型不同,给抬头附加数据里的字段赋默认值.如下图所示: 二.实现方式:实现的方式可以有很多种,这里讲一下用BADI增强ME_PROCESS_PO_CUST实现的方式 第一步:执行事务码se19,在BAdI Name处输入:ME_PROCESS_PO_CUST,然后点"Create Impl"按钮 第二步:在Implementation Name输入ZME_PROCESS_PO_CUST,点OK按钮. 第三步:双击"PROCESS

增强篇1 PO保存增强

公众号文章地址:https://mp.weixin.qq.com/s?__biz=Mzg4MzI1OTM0OA==&mid=2247484108&idx=7&sn=90e56173fe6299f7e4d15bc85acdeb10&chksm=cf4b6077f83ce961cbec45e6d7ef4c6efd5871ca61d1ec6bbedb7e5f067fdc6d1ce59f4c5f07&mpshare=1&scene=1&srcid=&

Linux 指令篇:文件或目录查找 --find

语 法:find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} \; #-print                               将查找到的文件输出到标准输出 #-exec    command    {} \;       -----将查到的文件执行command操作,{} 和 \;之间有空格 #-ok 和-exec相同,                    只不过在操作前要询