用T-CODE查询USER EXIT的程序

这篇博客展示了如何通过指定的T-CODE查询相关的USER EXIT程序。首先,从TSTC表中选取交易代码,然后通过一系列的数据库查询操作,获取到USER EXIT的相关信息,包括退出名称和描述。如果找到USER EXIT,会列出所有相关退出及其描述;否则,显示交易代码不存在的信息。

*----------------------------------------------------------------------*
*     TABLES
*----------------------------------------------------------------------*
TABLES TSTCTADIRMODSAPTMODACTTRDIRTFDIRENLFDIR.
TABLES TSTCT.

*----------------------------------------------------------------------*
*     I N T E R N A L   T A B L E S
*----------------------------------------------------------------------*
DATA JTAB LIKE TADIR OCCURS WITH HEADER LINE.
DATA FIELD1(30).
DATA V_DEVCLASS LIKE TADIR-DEVCLASS.

*----------------------------------------------------------------------*
*     SELECTION-SCREEN
*----------------------------------------------------------------------*
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(20P_TCODE,
       45(50TSTCT-TTEXT.
  SKIP.
  IF NOT JTAB[] IS INITIAL.
    WRITE:/(95SY-ULINE.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
           'Exit Name',
          21 SY-VLINE ,
          22 'Description',
          95 SY-VLINE.
    WRITE:/(95SY-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,
             JTAB-OBJ_NAME HOTSPOT ON,
            21 SY-VLINE ,
            22 MODSAPT-MODTEXT,
            95 SY-VLINE.
    ENDLOOP.
    WRITE:/(95SY-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'No User Exit exists'.
  ENDIF.
ELSE.
  FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
  WRITE:/(95'Transaction Code Does Not Exist'.
ENDIF.

*----------------------------------------------------------------------*
*     AT LINE-SELECTION
*----------------------------------------------------------------------*
AT LINE-SELECTION.

  GET CURSOR FIELD FIELD1.
  CHECK FIELD1(4EQ 'JTAB'.
  SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
  CALL TRANSACTION 'SMOD' AND SKIP FIRST   SCREEN.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值