SAP 增强(Enhancement)(转)

转自:http://hi.baidu.com/andy_yanhui/blog/item/f487b34f5be70600b2de05fa.html

 

(一)什么是增强(Enhancement)?
简单地说,增强就是ERP系统中标准程序的出口,在该出口中由用户根据企业实际需求编写客户化逻辑代码。增强是ERP系统设计时考虑到企业实际的流程有可能和系统默认标准流程不同,在标准流程框架下专门留的接口,每个接口对应一个客户化函数,这些出口函数有标准处理程序传入的参数和输出参数,用户可根据系统输入参数做条件编写适合本企业流程的逻辑,然后通过输出参数传输回。
(二)用户增强分类
SAP的用户增强通常包括下面3类。
1.E:Enhancement exits,即通常所谓的用户出口(User_exit )
用户出口也叫功能出口(Function Exit)。
使用Tcode:SE37搜索EXIT*,找到的函数大都是做系统预留的出口函数,前面说过,用户出口是标准程序留给用户的接口,标准程序通常不允许用户任意修改,如果修改需要申请Access Key,而且修改标准程序可能导致的错误 erp公司 通常是不负责的。在SAP中,自定义的程序通常以保留字Y或Z开头,因此,出口函数中都预包含了一个Z开头的程序。
2.C:GUI接口(GUI codes)
3.S:屏幕增强(Screen Exit)
比如,在建立采购订单,工单和固定资产主数据时,系统都预留屏幕增强,也就是说允许用户自定义用户输入界面并编写相应的输入输出处理程序。
在各类增强中,可能还用户自己定义结构或表格,系统对应类型T。比如增强MM06E005
允许用户建立两个结构CI_EKKODB和CI_EKPODB。
接下来将重点介绍功能出口的应用。
(三)组织用户增强
相关增强表格:
MODSAP:增强表格
TFDIR:包括出口函数在内的所有函数表(E类)
CUATEXTS:修改 GVI 界面,界面: 菜单文本被客户(C类)
TSDIR:动态程序区 CALL CUSTOMER SUBSCREEN(S类)
* 对于以EXIT开头的出口函数,TFDIR-MAND值为C表示此出口函数被激活。
相关增强检查函数:
MODX_FUNCTION_ACTIVE_CHECK:检查E类用户出口是否被激活。
MODX_MENUENTRY_ACTIVE_CHECK:检查C类增强激活状况
MODX_SUBSCREEN_ACTIVE_CHECK: 检查S类增强激活状况
你可能会发现,SAP的各模块的任何一个事务码(Tcode)对应的标准程序都留下了大量的用户出口,正是SAP灵活的配置功能和强大的用户出口才使其产品轻松应对各种复杂需求成为可能,系统还为能快速找到和激活这些增强进行了有效组织,各类增强被记录在table中并且提供了相关检查函数,从而更方便企业用户。
熟悉ABAP开发的朋友通常都收集了一个可以输入事务码快速找到系统留下的所有出口的程序,下表就是一个检测系统增强被激活的简单参考程序。
(以下ABAP code在原作者的基础上经过调试,修正了一些格式错误,可以正常输出结果)
  *&---------------------------------------------------------------------*
*& Report  ZFINDACTEXIT
* 该程序可以检测出系统所有被激活的用户增强.
* By oliver. on 2009/10/21 .
* Used to find out all the activated user-exit of SAP .
REPORT ZFINDACTEXIT .

TABLES: MODSAP,TFDIR.

DATA :  BEGIN  OF ITAB_EXIT  OCCURS  0,
           FUNCNAME  LIKE TFDIR-FUNCNAME,
                   MAND  LIKE TFDIR-MAND,
                NAME  LIKE MODSAP-NAME,
   END  OF ITAB_EXIT .

DATA : FIELD1( 30).
SELECT A~FUNCNAME A~MAND  B~NAME  INTO  TABLE ITAB_EXIT
   FROM TFDIR  AS A     INNER  JOIN MODSAP  AS B
     ON A~FUNCNAME = B~MEMBER
   WHERE A~MAND =  'C'  AND A~FUNCNAME = B~MEMBER .
FORMAT  COLOR COL_HEADING  INTENSIFIED  ON.

WRITE:/1 SY-VLINE,
2  'Enhancement Name',
21 SY-VLINE ,
22  'Activated Exit Function',
95 SY-VLINE.

WRITE:/( 95) SY- ULINE.

LOOP  AT ITAB_EXIT.
   FORMAT  COLOR  COL_NORMAL  INTENSIFIED OFF.

   WRITE:/1 SY-VLINE,
   2 ITAB_EXIT-NAME  HOTSPOT  ON,
   21 SY-VLINE ,
   22 ITAB_EXIT-FUNCNAME,
   95 SY-VLINE.
ENDLOOP.

AT  LINE-SELECTION.
   GET  CURSOR  FIELD FIELD1.
   SET  PARAMETER  ID  'MON'  FIELD SY-LISEL+ 1( 10).
   CALL  TRANSACTION  'SMOD'  AND  SKIP  FIRST  SCREEN.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值