zoukankan      html  css  js  c++  java
  • 2020.02.28 【ABAP随笔】- 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大致是做什么的

    由此可以得知这个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->销售与分销->系统调整->用户出口->销售中的User Exit->销售凭证处理的User Exit

    点击

    就可以查看出口说明(此处需要英文阅读)

     然后我们点击执行按钮或者运行SE38 

    输入MV45AFZZ 点击查看

     以上两个较为常用,对于SD的增强来说

    你会看到好多增强点,挑选一个适用的OK了。可能有不能确定的,业务顾问需要和开发顾问相互配合测试一下。

    -Tab Zhu 不念过去 不畏将来

     

     

     

     

     

     

     

    执行ME22N:进入debug模式

    双击EXIT_NAME参数可以看到BADI的名称,然后我们可以去SE18里面查看,这个BADI大致是做什么的

  • 相关阅读:
    fd_set 用法
    初步认识迭代服务器和并发服务器
    慢系统调用与信号中断
    nigix以及相关
    IO多路复用的几种实现机制的分析
    伪终端
    linux非阻塞的socket EAGAIN的错误处理
    从输入 URL 到页面加载完成的过程中都发生了什么事情?
    7.9 函数的定义
    7.8 文件操作
  • 原文地址:https://www.cnblogs.com/jxzhu/p/12381357.html
Copyright © 2011-2022 走看看