JSRUN 用代码说话

用户退出

编辑教程

用户退出

如果标准SAP提取器不提供期望的数据或所需的功能,例如在授权或时间检查中,则在提取中使用用户出口。 用户出口通常用于销售和分销(SD)模块。 SAP在销售,运输,运输和计费领域提供了许多退出。 用户出口旨在在标准SAP无法满足所有要求时进行一些更改。

要能够访问每个销售区域中可用的退出,请使用此路径转到IMG:IMG → Sales and Distribution → System Modifications → User Exits。 将详细解释SD区域中每个出口的文档。

例如,如果要在销售凭证处理(合同,报价或销售订单)中查找用户退出,请按照上述路径继续展开销售中的Sales → User Exits。 单击图标文档以查看销售凭证处理中提供的所有用户退出。

用户退出 说明
USEREXIT_FIELD_MODIFICATION 用于修改屏幕属性。
USEREXIT_SAVE_DOCUMENT 有助于在用户点击保存时执行操作。
USEREXIT_SAVE_DOCUMENT_PREPARE 非常有用的是检查输入字段,在字段中输入任何值或向用户显示弹出式窗口并确认文档。
USEREXIT_MOVE_FIELD_TO_VBAK 将用户标题更改移动到标题工作区时使用。
USEREXIT_MOVE_FIELD_TO_VBAP 将用户项目更改移动到SAP项目工作区时使用。

用户出口的功能与客户退出功能相同,但它们仅适用于SD模块。 退出实现为对函数模块的调用。 用户退出是对SAP标准程序的修改。

例子

REPORT ZUSEREXIT1. 
TABLES:   
   TSTC, TSTCT,
   TADIR, TRDIR, TFDIR, ENLFDIR,
   MODSAPT, MODACT. 

DATA:   
   JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE,
   field1(30),
   v_devclass LIKE TADIR-devclass. 

PARAMETERS:
   P_TCODE LIKE TSTC-tcode OBLIGATORY. 

SELECT SINGLE *
   FROM TSTC
   WHERE tcode EQ P_TCODE. 

IF SY-SUBRC EQ 0.
   SELECT SINGLE *
   FROM TADIR

   WHERE pgmid = 'R3TR' AND 
         object = 'PROG' AND
         obj_name = TSTC-pgmna.

   MOVE TADIR-devclass TO v_devclass.

   IF SY-SUBRC NE 0.
   SELECT SINGLE * 
      FROM TRDIR
      WHERE name = TSTC-pgmna.

   IF TRDIR-subc EQ 'F'.
      SELECT SINGLE *
         FROM TFDIR
         WHERE pname = TSTC-pgmna.

      SELECT SINGLE *
         FROM ENLFDIR 
         WHERE funcname = TFDIR-funcname.

      SELECT SINGLE * 
         FROM TADIR
         WHERE pgmid = 'R3TR' AND
               object = 'FUGR' AND 
               obj_name EQ ENLFDIR-area.
         MOVE TADIR-devclass TO v_devclass.
      ENDIF.
   ENDIF.

   SELECT *
      FROM TADIR
      INTO TABLE JTAB

      WHERE pgmid = 'R3TR' AND
            object = 'SMOD' AND
            devclass = v_devclass.

   SELECT SINGLE *
      FROM TSTCT
      WHERE sprsl EQ SY-LANGU AND
            tcode EQ P_TCODE.

   FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
   WRITE:/(19) 'Transaction Code - ', 
      20(20) P_TCODE,
      45(50) TSTCT-ttext.
   SKIP.

   IF NOT JTAB[] IS INITIAL.
      WRITE:/(95) SY-ULINE.
      FORMAT COLOR COL_HEADING INTENSIFIED ON.

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

      WRITE:/(95) SY-ULINE.
      LOOP AT JTAB.
         SELECT SINGLE * FROM MODSAPT
         WHERE sprsl = SY-LANGU AND
               name = JTAB-obj_name.

         FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
         WRITE:/1 SY-VLINE,
               2 JTAB-obj_name HOTSPOT ON,
               21 SY-VLINE ,
               22 MODSAPT-modtext,
               95 SY-VLINE.
      ENDLOOP.

      WRITE:/(95) SY-ULINE.
      DESCRIBE TABLE JTAB.
      SKIP.
      FORMAT COLOR COL_TOTAL INTENSIFIED ON.
      WRITE:/ 'No of Exits:' , SY-TFILL.

   ELSE.
      FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
      WRITE:/(95) 'User Exit doesn’t exist'.
   ENDIF. 
ELSE.

   FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
   WRITE:/(95) 'Transaction Code Does Not Exist'. 
ENDIF.

AT LINE-SELECTION.
   GET CURSOR FIELD field1.
   CHECK field1(4) EQ 'JTAB'.
   SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
   CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

处理时,输入事务代码“ME01",然后按F8(执行)按钮。 上面的代码产生以下输出:

Transaction Code ‘ME01

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟