SAP ABAP-5.增强
5 增强
5.1 定义
5.2 第一代
这些Form集中存储在一些文件名倒数第二个字符为Z的包含程序中(如后面销售凭证主程序SAPMV45A中的MV45ATZZ、MV45AOZZ等Include文件)
这些Form的名称一般是以UserExit_打头的子模块,所以一般找到所要增强的主程序,再查找UserExit_ 关键字即可找到相关的出口
Form源代码增强事先要到 service marketplace 申请对象键(ACCESS KEY),然后才能修改这些子程序,另外,可以在SPRO中搜索 USER EXIT关键字来查找
子程序中,user开头的
5.3 第二代
在SAP发布的版本中,使用CALL CUSTOMER-FUNCTION <3位数字>调用函数模块的,所以你可以通过在程序中查找cusomer-function来查找增强,出口函数名称由三部分组成:EXIT_<程序名>_<3位数字>(注:这里的<程序名>即指调用此出口函数的程序名),这样你就可以找到对应的增强函数了
针对数据表的增强出口是 “CI_ ”打头的结构,这些结构将.INCLUDE 结构的形式包含到时相应的数据表中,用户可以通过向这些结构中添加字段从而达到对数据表字段的增加
查找Enhancement的方法:
1、 在程序中搜索CUSTOMER-FUNCTION找到后面的3位数字编号,出口函数名的规则为EXIT_<程序名>_<3位数字>,然后通过找到的出口函数名到MODSAP表里查找所对应的出口对象(即增强点)
2、 通过调试系统相关函数:MODX_FUNCTION_ACTIVE_CHECK
3、 代码找增强
以VA01对应的主程序SAPMV45A为例,在源码中可以查找包含CALL CUSTOMER-FUNCTION的字符串,可以找到这样的代码:
根据出口所对应的函数名规则,这个函数名为EXIT_SAPMV45A_910
5.3.1 SMOD维护激活,CMOD最终实现激活
用SMOD(激活增强,只需一次激活)和CMOD(实现增强)维护;
5.3.1.1 MODSAP表,存的是增强总信息
功能增强:例如字段校验、字段之间日期校验等
屏幕增强:例如销售订单附加数据等
表增强:append和include
GUI增强:增加个功能操作按钮
屏幕增强和表增强是相互关联的。
例如RMVKONOO这个增强,包含两个E的和一个T的:
5.3.1.2 TFDIR表,主要是存E功能的,MAND字段为C表示激活
5.3.2 第二种方法,通过一些函数,主要是查增强的
例如函数:MODX_FUNCTION_ACTIVE_CHECK
1.设断点