SAP_增强概览

一、增强种类:按增强类型划分、按增强发展划分

按增强类型划分

1、E类(用户出口)
2、C类(比如区域菜单增强)
3、S类(屏幕增强)
4、T类(预留自定义结构,比如增强点MM06E005的CI_EKKODB)

按增强发展划分

1、一代增强
2、二代增强
3、三代增强
4、四代增强
一代增强:它是SAP提供一个空代码的子程序,子程序中开发顾问可以添加代码,达到满足用户需求的目的,修改需要申请ACCESS KEY, 升级会被覆盖,这种增强的说明可以从SPRO相关模块的路径里面找到,一般是以USEREXIT_打头的子程序。
二代增强:包括FUNCTION-EXIT功能增强、MENU-EXIT菜单增强、SCREEN-EXIT屏幕增强,用SMOD、CMOD来维护。标准程序中用CALL FUNCTION ‘EXIT_主程序_XXX三位阿拉伯数字编号’/CALL CUSTOMER-FUNCTION ‘XXX三位阿拉伯数字编号’调用,它在发布的时候通过INCLUDE ‘ZXXXXXXX’,修改不需要申请ACCESS KEY。
三代增强:基于面向对象的BADI,源代码以接口的方式发布,通过调用接口的方法来实现使用的,BAIDI增强实际上是实现一个或者多个基于这个接口的实施类,因为接口类实际上是一个抽象类,所以对同一个BADI会出现不同的源代码,这些不同的源代码是通过过滤器ADAPTER来区别用于不同的业务场景的,用SE18、SE19来维护。
四代增强:NEW BADI是BADI的加强SWITCH FRAMEWORK,当SAP进入NETWEAVER 7.0以后推出的新增强体系,还增加了ENHANCEMENT SPOT和ENHANCEMENT SECTION以及隐式增强的概念。

二、增强查找方法

一代增强

方法1、在主程序中找到倒数第二个字符为Z的INCLUDE包含程序,比如VA01主程序中的MV45AFZZ。
方法2、在事务代码对应的程序中搜索UEREXIT_打头的子程序。
方法3、通过SPRO查找。

二代增强

方法1、在函数MODX_FUNCTION_ACTIVE_CHECK的最后一行打断点,运行需要查找增强的T-code,如果有增强点就会把增强组件赋值给局部变量l_funcname,在SMOD利用查找功能,输入增强组件就可以找到增强点。
方法2、在初始界面输入/H激活调试,然后输入需要查找增强的事务代码,设置断点语句CALL CUSTOMER-FUNCTION后执行,如果有增强点就会停在CALL CUSTOMER-FUNCTION处,就可以知道增强组件,在SMOD利用查找功能,输入增强组件就可以找到增强点。
方法3、利用网络上流传很广的程序查找。
方法4、通过SPRO查找
找到增强点后,用CMOD创建增强管理,添加增强点。

三代增强

方法1、通过类CL_EXITHANDLER的方法GET_INSTANCE实现,具体如下:在初始界面输入/H激活调试,然后输入需要查找增强的事务代码,设置断点语句CL_EXITHANDLER的方法GET_INSTANCE,然后执行,通过GET_INSTANCE的参数exit_name判断BADI。
方法2、通过SPRO查找。

四代增强

方法1、针对ENHANCEMENT SPOT,在标准程序中,通过单击按钮“增强”→菜单上的“显示隐式增强选项”判断,一般增强点在子程序的开头和结尾。

猜你喜欢

转载自blog.csdn.net/linmingqiang506/article/details/80612227