查找SAP标准程序用户出口以及BADI的方法.pdf
12页查找 SAP标准事务代码中使用的BADI:在 SE24 中,查看类对象CL_EXITHANDLER,在其方法(Methods)GET_INSTANCE 的第14 行打断点,之后运行事务代码;当 有BADI将 会 被 执 行 的 时 候,这 时 候 会 进 入 类CL_EXITHANDLER 的GET_INSTANCE 方法,按 F6 执行这个方法之后,参数 EXIT_NAME 中的值便是BADI 定义(SE18 中看到的东西),参数 CLASS_NAME 则是类对象名称(SE24 里面看到的东西),所有的方法实现都是存在于类对象中;通过查找类方法中的参数(Parameter)和对对象的属性(Attribute),如果能满足自己需要实现的功能,则可以通过实现这个BADI 来做增强实现 BADI 的方法(ECC6.0 版本下):进入SE19,选择Create Implementation中的Classic BADi,输 入刚 才查 找到的EXIT_NAME;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -点击 Create Impl,输入实现名;点绿勾;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -点击保存,激活(如果是ECC6.0 版本,则还需要指定对应的Enhancement Spot,才可以完全创建成功。
双击进入方法CHANGE_SEGMENT_PSEGMENT,即可在里面实现功能;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -下面再运行F-02,执行程序,即可进入此段代码查找 SAP标准事务代码中使用的USER_EXIT:在 SE37 中,查看函数MODX_FUNCTION_ACTIVE_CHECK,在最后一行打断点;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 12 页 -当有USER_EXIT将会被执行的时候,这时候函数MODX_FUNCTION_ACTIVE_CHECK 中的参数L_FUNCNAME 会显示出口的名称名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 12 页 -如果要使用这个出口,必须先激活(已经激活的则不需要);先去表MODSAP 中查找这个程序名的出口名;进入 CMOD,创建出口对象(以下图例使用的是一个已经存在的增强对象);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -选择Enhacement assignments;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 12 页 -在这里输入增强对象名,也就是刚才在MODSAP 表里面查到的F180A001,点击组件;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 12 页 -选择修改,激活这些增强,双击进入EXIT_SAPLF048_001 程序;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 12 页 -创建 INCLUDE ZXF48U01;运行 F-02,便会进入此出口程序。
名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 12 页 -1.搜索 BADI 使用 BADI,首先如果一个需求给我们,我们必须要了解或者调研究竟这个业务场景是否使用了 BADI(或者是 Exit,如果是 Exit 则可以去实现 exit)作为一个记录,需求仅是“尝试”对Tcode:MIGO 进行 BADI增强对于 MIGO,看它使用了哪些BADI找到 MIGO 的 program:System-status 它的 program 为:SAPLMIGO 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 12 页 -SE38中 global 搜索:以 CL_EXITHANDLER为关键字这里,我们来实现这个BADI:MB_MIGO_BADI(注:另一个 BADI的实现并应用于具体业务,将在后续MM 业务记录的文档中给出)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 12 页 -。





