蔷薇525 发表于 2015-9-21 07:24:56

几种sap增强的查找方法

  ***方法一****************************************
  通过SE30,运行TCODE后,点Evaluate后,查看运行时间分析评估:命中清单。
  找以“exit”开头的SAP程序,如:EXIT_SAPLIE01_007,
  这个FUNCTION就是TCODE提供的一个出口。
  至于如何查看这个增强是属于哪个SMOD,能够查阅 MODSAP这个表(SAP Enhancements).
  ***方法二****************************************
  通过SE37中的:MODX_FUNCTION_ACTIVE_CHECK 函数来找,
  在函数的最后一行打个断点,再运行TCODE的,如果有增强则会跳入DEBUG界面,在DEBUG界面中,查看L_FUNCNAME字段对应的值,此值就是就是要找的出口,
  再去SE11中通过MODSAP来查看出口对就的是那个SMOD,
  接下来就可以在CMOD中创建增强组了,把找到的增强填入,
  最后根据实际的业务进行处理。
  以上的两种方法是用来找第二代增强。
  ***方法三****************************************
  找BADI的方法。
  先运行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。
  实现BADI的方法
  进入SE19,选择Create Implementation中的Classic BADi
  另一种方法(跟上面的差不多)
  查找源程序,在程序中查找代码段 CL_EXITHANDLER => GET_INSTANCE
  就可以找到该程序所用到的BADI。
  ***方法四****************************************
  通过开发类找出口
  以ME21N事务代码为例,进入TCODE后,选择点系统 -》状态 -》程序名称,双击后进入到程序中,再点菜单栏中的 转到 -》属性,找到开发类的名称,比如ME21N的开发类是‘ME’。
  如果是打出口,则到SMOD事务代码中,点 加强边的按纽,在开发类中输入‘ME’,回车后就会显示出所有的出口。
  找BADI也是同样的过程,只是到SE18中去确定BADI
  不过此方法找出来的出口,不是针对某个程序的出口,而是把开发类所对应的出口全找出口,所以
  还要通过自己的判断找到所需求的出口
  *******************************************
  增强相关函数和表格
  Function:
  .DYNP_VALUES_READ
  . MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)
  .MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)
  .MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)
  .MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)
  以上内容转自互联网。
页: [1]
查看完整版本: 几种sap增强的查找方法