原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)
**点击蓝字关注我们**
富强 民主 文明 和谐
自由 平等 公正 法制
爱国 敬业 诚信 友善
_**01** _
**SAP增强点查找**
**不念过** **去**
**START**
**不畏将来**
SAP 查找增强的方法
** 1\. SE30 运行时间分析评估,找到EXIT_*开头的函数-可以查到CMOD增强点 **
然后去 MODSAP 表中查找:
我们可以在 SE30 中运行 MM02 ,随便输入一个物料,稍微改点东西,然后保存退出,
得到运行时间分析报表:
得到 function : EXIT_SAPLMGMU_001
然后 SE16N 中 MODSAP 查询:
然后这个增强就是 MM01 MM02 在创建物料时额外增强的校验增强点。
可以去事务码 CMOD 增强。
**2. 在function:MODX_FUNCTION_ACTIVE_CHECK 打断点 **
在函数的最后一行打个断点,再运行 TCODE 的,如果有增强则会跳入 DEBUG 界面,在 DEBUG 界面中,查看 L_FUNCNAME
字段对应的值,此值就是就是要找的出口
还是用 MM02 做演示:
首先在 SE37 中进入 MODX_FUNCTION_ACTIVE_CHECK 在最后一行打个断点
然后执行 MM02 ,修改保存时,若是有增强点就会触发 debug
再去 SE11 中通过 MODSAP 来查看出口对就是那个 SMOD ,
接下来就可以在 CMOD 中创建增强组了,把找到的增强填入,
最后根据实际的业务进行处理。
** 3\. 找BADI的方法: ** ** 类对象CL_EXITHANDLER **
先运行 SE24 ,查看类对象 CL_EXITHANDLER, 在其方法:在 GET_INSTANCE 的 14 行( CALL
METHOD CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE )打上一个断点。接下来运行事务代码,当有 BADI 是将会被执行,这时在 DEBUG 模式下,会进入类 CL_EXITHANDLER 的
GET_INSTANCE 方法,按 F6 执行这个方法之后,
点参数 EXIT_NAME 查看其对应的值,所有的方法实现都在此类对象中,此时就是我们所要找的 BADI 。
我们以事务码 ME22N 为例:
执行 ME22N :进入 debug 模式
双击 EXIT_NAME 参数可以看到 BADI 的名称,然后我们可以去 SE18 里面查看,这个 BADI 大致是做什么的 (增强点和
BADI 名称都可以查询一下)
由此可以得知这个 ME_PO_PRICING 增强点是增强 PO 价格确定的。
若是这个不是你所需要的增强可以在 DEBUG 界面按 F8 让程序继续进行,遇到 BADI 又会进入 DEBUG 界面。
** 4\. 通过开发类找出口 **
以 ME21N 事务代码为例,进入 TCODE 后,选择点系统 \- 》状态 \- 》程序名称,双击后进入到程序中,再点菜单栏中的 转到
\- 》属性,找到开发类的名称,比如 ME21N 的开发类是‘ ME ’。
如果是找出口,则到 SMOD 事务代码中,点 加强边的按纽,在开发类中输入‘ ME ’,回车后就会显示出所有的出口。
打开 SMOD :
找 BADI 也是同样的过程,只是到 SE18 中去确定 BADI
不过此方法找出来的出口,不是针对某个程序的出口,而是把开发类所对应的出口全找出口,所以
还要通过自己的判断找到所需求的出口
**
**
**5. 根据SPRO配置说明或者modification等查找: **
其实使用中发现任何一个增强方法的查找都是不全面的, SAP
系统十分复杂繁琐,增强方式也有很多。一般性的增强我们都可以先百度一下,说不定一起出来的还有例子,这应该是最快一种方法。
第五点是根据 SPRO 配置点附近增强说明去查找:这个个人觉得是最有头绪的,有理有据的。
举个例子:
我们进入 SPRO-> 销售与分销 -> 系统调整 -> 用户出口 -> 销售中的 UserExit-> 销售凭证处理的 UserExit
点击
就可以查看出口说明(此处需要英文阅读)
然后我们点击执行按钮或者运行 SE38
输入 MV45AFZZ 点击查看
以上两个较为常用,对于 SD 的增强来说
你会看到好多增强点,挑选一个适用的 OK 了。可能有不能确定的,业务顾问需要和开发顾问相互配合测试一下。
**不念过** **去**
**END**
**不畏将来**
**SAP ABAP TAB**
微信号 : TAB_JXZHU
后台回复'ABAP'免费领取学习资料
长按二维码关注我们