【转载】ABAP总结之十一,Enhancement(3)--User Exits .

 User Exits是SAP第一代增强技术,其技术原理就是在程序中预先置放一个Form...EndForm的子程序,并在事物运行时Call这个Form。当然,如果这个Form是空的,那么不执行任何操作,反之,执行相应的动作。User Exits的写法,和修改标准程序是一致的,要有向SAP申请Access Key才能对这些程序进行修改。与修改标程的区别在于,在SAP做升级的时候,User Exits会自动保留,标程的修改如果不做特殊处理,就会被覆盖。
    在做这样的增强时,要养成一个习惯,那就是把你所要添加的代码都写在自己以Z开头的function中,然后在Form中调用这个function。
例如:
FORM Add .
 CALL FUNCTION 'ZGDTEST'
   EXPORTING
     I_CHAR        =
     I_FLOAT       =
*  IMPORTING
*    E_DATE        =
*    E_CHAR        =
*    E_VAR         =
           .
ENDFORM.             
下面来讲一下,如何找到此类出口:

方法1:

SPRO -> SAP Reference IMG,按 Search Term中填入’USER EXIT’就可以查到每个模块相应的出口了,每个出口SAP都会有相应的使用说明。

例子:

User Exits In Sales Document Processing

程序:MV45AFZZ

出口名:USEREXIT_SAVE_DOCUMENT

使用说明:

Use this user exit to fill user-specific statistics update tables.

The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.

Note

If a standard field is changed, the field r185d-dataloss is set to X. The system queries this indicator at the beginning of the safety routine. This is why this indicator must also be set during the maintenance of user-specific tables that are also to be saved.

 

方法二

进入你要做增强的那个screen,找到相应的程序名,例: va01以下屏幕的程序就是SAPMV45A

用T-CODE: SE38, 输入程序名SAPMV45A,进入,按下,屏幕左部出现以下对话框。

选择Subroutines进行扩展,那些以USEREXIT开头的routines就是我们要找的出口,这里可以很方便地找到USEREXIT_SAVE_DOCUMENT,和之前的方法效果是一样的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP Enhancement-Section是一种ABAP语言中的扩展机制,它允许我们在SAP标准程序中进行修改和增强。通过使用ABAP Enhancement-Section,我们可以在标准程序的不同部分插入自定义代码,以满足特定的业务需求。 ABAP Enhancement-Section的使用步骤如下: 1. 找到要修改或增强的SAP标准程序。 2. 使用ABAP Developer Tools或ABAP Workbench打开该程序。 3. 在程序中找到适合插入自定义代码的位置。 4. 在找到的位置上创建一个新的ABAP Enhancement-Section。 5. 给这个新的ABAP Enhancement-Section起一个合适的名字。 6. 在ABAP Enhancement-Section中编写自定义的代码,实现对标准程序的修改或增强。 7. 保存所有的修改并激活程序。 ABAP Enhancement-Section的优点在于它能够实现定制化的扩展,而无需对SAP标准程序进行修改。这样一来,在升级或修补SAP系统时,我们的修改不会丢失或被覆盖。同时,ABAP Enhancement-Section还能提高代码的可读性和可维护性,因为我们的自定义代码与标准代码分离,易于理解和调试。 ABAP Enhancement-Section支持多种类型的扩展,如隐式增强(Implicit Enhancement)和显示增强(Explicit Enhancement)。隐式增强是指在标准程序中创建一个新的ABAP Enhancement-Section并插入自定义代码。显示增强是指通过在标准程序中用特定的注释标记出扩展点,然后在自定义代码中引用这些扩展点。 总而言之,ABAP Enhancement-Section是一种非常有用的扩展机制,可以帮助我们在SAP标准程序中实现修改和增强,同时保持程序的稳定性和可升级性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值