SAP 二代增强

二代增强简介

SAP提供的是CUSTOMER-FUNCTION,它是通过SMOD和CMOD完成实现

源代码增强以函数模块形式发布,在 SAP 的发行版本中,使用 CALL CUSTOMER-FUNCTION <3位数字> 调用这些函数模块,出口函数名称由三部分组成:EXIT_<程序名>_<3位数字>(注:这里的<程序名>即指调用此出口函数的程序名),它们在发布时只有一句代码 INCLUDE xxxxxxx。

 

用户增强时,无需申请对象键,直接双击这个包含,然后回车,就可以创建相关的包含文件,编写相应的代码了。

 

这些函数模块中只能使用接口中传递的参数,不能使用调用程序的全局变量。

 

针对数据表的增强出口是“CI_”打头的结构,这些结构将.INCLUDE结构的形式包含到时相应的数据表中,用户可以通过向这些结构中添加字段从而达到对数据表字段的增加

 

增强分类

 

E. Function exits:函数增强

 

C.GUI codes:GUI增强

 

S. Screens:屏幕增强   增强屏幕的调用是使用 CALL CUSTOMER-SUBSCREEN

 

T. Tabes:表结构增强

 

如何去找

方法一: 在程序中搜索 CUSTOMER-FUNCTION;如果是屏幕的增强,则搜索CALL CUSTOMER-SUBSCREEN

搜索到后,对应的完整function名称是EXIT_<程序名>_<3位数字>;双击可进入SE37查看源代码。其中增强的内容写在INCLDE包含的文件内;

 

方法二:通过数据库表+SE37打断点的方式。(推荐)

通过SE37中的:MODX_FUNCTION_ACTIVE_CHECK 函数来找,

不同类型增强使用的Function:

 

[1].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)

 

[2].MODX_MENUENTRY_ACTIVE_CHECK、MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)

 

[3].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)

 

在函数的最后一行打个断点,再运行TCODE的,如果有增强则会跳入DEBUG界面,在DEBUG界面中,查看L_FUNCNAME字段对应的值,此值就是就是要找的出口,

 

再去SE11中通过MODSAP来查看出口对就的是那个SMOD,接下来就可以在CMOD中创建增强组了,把找到的增强填入,最后根据实际的业务进行处理。

 

方法三:通过SE93+TADIR数据表

首先根据事物码找到对应程序名(SE93),然后SE11查询数据表TADIR(限定PGMID=“R3TR”、 OBJECT= “PROG”、OBJ_NAME=程序名)找对应开发类,如果找不到对应开发类,通过SE38查看程序,在菜单 “转到-属性”中找开发类。然后再用SE11查询数据表TADIR(限定PGMID=“R3TR”、 OBJECT= “SMOD”、DEVCLASS=开发类)就可找到此程序可用的增强点(并非万能)。然后根据增强点从表MODSAP中就可以看到此增强具备哪些功能【屏幕增强(S)、菜单增强(C)、功能增强(E)、表增强(T)】

举例:

成本中心屏幕增强实例

先SE93找到KS01(成本中心创建)对应程序SAPLKMA1,然后SE11查询表TADIR找不到对应开发类,通过SE38查看SAPLKMA1开发类为KBAS,然后再用SE11查询表TADIR可以查到可用增强点有COCCA001、COCCA002、COOMEP01、COOMKA01、COOMKS01、COOMKS02、COOMKS03、COOMLA01,然后将这些增强点在MODSAP中查询,就可以发现只有COOMKS01可以对成本中心主数据屏幕做增强,并且此增强点包括了屏幕增强、菜单增强、表增强、功能增强。

 

ME21N举例:SE93 找到程序名称RM_MEPO_GUI,搜索SE11表TADIR,无;则SE38进入看包名称,搜索TADIR,查询到35个条目,其中OBJ_NAME则对应的是MODSAP的NAME。根据MODSAP的MEMBER字段,结合TFDIR的FUNCNAME字段,可搜索出函数的用途

 

增强示例

 

 

 

 

 

 

查询检索

表MODSAP记录了增强出口对象,出口函数及对象类型;表TFDIR还增加了出口函数的作用等详细信息

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值