第二代增强: 基于用户出口的增强

第二代增强需要通过SMOD和CMOD维护,使用call customer-function '****'调用函数模块,SE37中的函数名则是:EXIT_程序名_'3位流水码',但是这种增强不能像第一代增强那样使用全局变量,只能够使用出入参,如果的确需要使用到全局变量,建议可以用指针的方式。

第二代增强中主要有4类:

1、E类: enhancement exits,函数增强,也就是用户出口( user exit ),可以在TFDIR中查询EXIT_打头的函数。

2、C类:Gui code,GUI增强

3、S类:Subscreen 屏幕增强,采购订单ME2*,销售订单VA0*,工单CO0*,都允许用户自定义输入界面并编写相应输入输出处理程序。

4、T类: include structure,比如说MM06E005中允许用户建立的两个结构,CL_EKKODB和CL_EKPODB。

Enhancement在MODSAP表(增强点与函数关系对应表)中可查到,而TFDIR表中字段 MAND的值为C时才表示此出口函数被激活了。当然可使用SMOD(CMOD)来激活exit function,但有时候一时难以查询到相关Enhancement时就无法使用SMOD(CMOD)来激活,则可使用下面程序将出口函数激活:

REPORT zactexitfun .
DATA ztfdir LIKE tfdir .
* select single * from tfdir into ztfdir  * where FUNCNAME =  * 'EXIT_SAPMM06E_013'.  * ztfdir-MAND = 'C' .
* update tfdir from ztfdir.
* 将EXIT_SAPMM06E_013换成实际所需exit函数名
UPDATE tfdir SET mand = 'C'.
where funcname = 'EXIT_SAPMM06E_013'.

Enhancement比较重要的表MODSAP,这个表里重要的字段有增强名(Name,即出口对象名),组件类型(TYP: E C S T),组件功能模块名(Member):里面记录了所有enhancement的增强。TFDIR所有的函数表,重要字段有FUNCName(函数名),MAND(功能模块激活状态如果是C代表此函数模块激活)。

SMOD和CMOD的区别

 SMOD可以查看具体的某个出口,包含具体的增强内容。用户出口MM06E005包括E类函数出口,S类屏幕增强和T类结构增强。

CMOD是项目,包含了这个项目中使用的增强SMOD,可以在CMOD中激活开发的增强( 注:不激活无法使用 )。一个出口只能被一个项目使用。

注:并不是新开发的SMOD增强都需要分配CMOD,如果没有分配CMOD项目,需要SMOD中激活,并且还需要再正式环境PRD和测试环境QAS中再次激活,否则无法使用。所以一般还是建议分配项目。

寻找出口函数:

根据关键字: CALL CUSTOMER-FUNCIOTN:或者找到程序所在的package,SE38运行程序SNIF。

所以下图的SE37出口函数模块名是EXIT_SAPMV45A_002。

    

找到了函数名之后通过表MODSAP可以找到所在的SMOD用户出口。

除此之外还可以通过package来找用户出口。表:TADIR。在:object 中输入SMOD和CMOD,DEVCLASS中输入pavkage。

二代增强几个重要的表

MODSAP  出口函数和增强点的联系

TFDIR  存储出口函数名,状态(是否激活)

TFTIT   函数功能的段文本

TSDIR  屏幕增强

CUATEXTS  菜单增强

MODSAPA  增强的属性

MODATTR  增强项目属性

TADIR  资源库对象的目录

屏幕增强

这一部分相对会复杂一些,所以单独拿出来介绍:

1、VA02中附加数据的增强(注:此部分最简单,是SAP预留的可直接修改的screen增强 )。

https://blog.csdn.net/weixin_42646630/article/details/113662608

2、VA02中增加新的一页视图(类似附加数据A、附加数据B),CS03增强,ME23N增强

https://blog.csdn.net/weixin_42646630/article/details/113663461

SAP屏幕增强汇总:https://max.book118.com/html/2017/0126/86826208.shtm

https://wenku.baidu.com/view/9595ea9b8f9951e79b89680203d8ce2f01666585.html

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值