Chinaunix首页 | 论坛 | 博客
  • 博客访问: 967182
  • 博文数量: 463
  • 博客积分: 10070
  • 博客等级: 上将
  • 技术积分: 4963
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 14:16
文章分类

全部博文(463)

文章存档

2011年(18)

2010年(144)

2009年(83)

2008年(218)

我的朋友

分类: IT职场

2008-07-27 18:55:50

    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

出口名:

使用说明:

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,和之前的方法效果是一样的。

 

阅读(2169) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-09-27 11:08:51

qdbarry 你觉得哪个按钮是对的呢??

qdbarry2008-07-28 09:05:54

用T-CODE: SE38, 输入程序名SAPMV45A,进入,按下 ,屏幕左部出现以下对话框。。。。 那个按钮错了耶~