个人收藏 查看程序或者tcode的badis 或者 exits

来源:互联网 发布:铃声编辑软件 编辑:程序博客网 时间:2024/03/29 09:52
SPAN { font-family: "MS Gothic"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; }REPORT   ZTEST_XXX_0001.

TABLES  : TSTC, TADIR, MODSAPT, MODACT, TRDIR,
  TFDIR, ENLFDIR, SXS_ATTRT , TSTCT.
DATA  : JTAB LIKE  TADIR OCCURS  0  WITH  HEADER  LINE .
DATA  : FIELD1(30 ).
DATA  : V_DEVCLASS LIKE  TADIR-DEVCLASS.

PARAMETERS  : P_TCODE LIKE  TSTC-TCODE, P_PGMNA LIKE  TSTC-PGMNA .

DATA  WA_TADIR TYPE  TADIR.

START-OF -SELECTION.
  IF  NOT  P_TCODE IS  INITIAL .
    SELECT
SINGLE  * FROM  TSTC WHERE  TCODE EQ  P_TCODE.
  ELSEIF  NOT  P_PGMNA IS  INITIAL .
    TSTC-PGMNA = P_PGMNA.
  ENDIF .
  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 IN  ('SMOD''SXSD' )
      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 :/(105 ) SY-ULINEFORMAT  COLOR  COL_HEADING INTENSIFIED  ON .
* SORTING THE INTERNAL TABLE SORT JTAB BY OBJECT.
      DATA  : WF_TXT(60TYPE  C , WF_SMOD TYPE  I  ,
             WF_BADI TYPE  I  , WF_OBJECT2(30TYPE  C .
      CLEAR  : WF_SMOD, WF_BADI , WF_OBJECT2.
*GET THE TOTAL SMOD.
      LOOP  AT  JTAB INTO  WA_TADIR.
        AT  FIRST .
          FORMAT  COLOR  COL_HEADING INTENSIFIED  ON .
          WRITE :/1 SY-VLINE, 2  'Enhancement/ Business Add-in'41
          SY-VLINE ,
           42  'Description'105  SY-VLINE. WRITE :/(105 ) SY-ULINE .
        ENDAT .

        CLEAR  WF_TXT.

        AT  NEW  OBJECT.
          IF  WA_TADIR-OBJECT = 'SMOD' .
            WF_OBJECT2 = 'Enhancement'  .
          ELSEIF
            WA_TADIR-OBJECT = 'SXSD' .
            WF_OBJECT2 = ' Business Add-in' .
          ENDIF .
          FORMAT  COLOR  COL_GROUP INTENSIFIED  ON .
          WRITE :/1 SY-VLINE, 2  WF_OBJECT2, 105  SY-VLINE.
        ENDAT .
        CASE  WA_TADIR-OBJECT.
          WHEN  'SMOD' .
            WF_SMOD = WF_SMOD + 1 .
            SELECT  SINGLE  MODTEXT INTO  WF_TXT
              FROM  MODSAPT
              WHERE  SPRSL = SY-LANGU
              AND  NAME = WA_TADIR-OBJ_NAME.

            FORMAT  COLOR  COL_NORMAL  INTENSIFIED  OFF.
          WHEN  'SXSD' .
* FOR BADIS WF_BADI = WF_BADI + 1 .
            SELECT  SINGLE  TEXT
              INTO  WF_TXT
              FROM  SXS_ATTRT
              WHERE  SPRSL = SY-LANGU
              AND  EXIT_NAME = WA_TADIR-OBJ_NAME.
            FORMAT  COLOR  COL_NORMAL  INTENSIFIED  ON .
        ENDCASE .
        WRITE :/1 SY-VLINE, 2  WA_TADIR-OBJ_NAME
        HOTSPOT  ON41  SY-VLINE
        , 42  WF_TXT, 105  SY-VLINE.
        AT  END  OF  OBJECT. WRITE  : /(105 ) SY-ULINEENDAT .
      ENDLOOP .
      WRITE :/(105 ) SY-ULINESKIP .
       FORMAT  COLOR  COL_TOTAL INTENSIFIED  ON .
      WRITE :/ 'No.of Exits:'  , WF_SMOD.
      WRITE :/ 'No.of BADis:'  , WF_BADI    .
    ELSE .
      FORMAT  COLOR  COL_NEGATIVE  INTENSIFIED  ONWRITE :/(105 )
      'No userexits or BADis exist' .
    ENDIF .
  ELSE .
    FORMAT  COLOR  COL_NEGATIVE  INTENSIFIED  ON .
    WRITE :/(105'Transaction does not exist' .
  ENDIF .

AT  LINE -SELECTION.
  DATA  : WF_OBJECT TYPE  TADIR-OBJECT.
  CLEAR  WF_OBJECT. GET  CURSOR  FIELD
  FIELD1.

   CHECK  FIELD1(8EQ  'WA_TADIR' .

   READ  TABLE  JTAB WITH  KEY
  OBJ_NAME = SY-LISEL+1 (20 ).

  MOVE  JTAB-OBJECT TO  WF_OBJECT.

  CASE  WF_OBJECT.
    WHEN  'SMOD' .
      SET  PARAMETER  ID  'MON'  FIELD   SY-LISEL+1 (10 ).
      CALL  TRANSACTION  'SMOD'  AND  SKIP  FIRST  SCREEN .
    WHEN   'SXSD' .
      SET  PARAMETER  ID  'EXN'  FIELD  SY-LISEL+1 (20 ).
      CALL  TRANSACTION   'SE18'  AND  SKIP  FIRST  SCREEN .
  ENDCASE .