brunch

You can make anything
by writing

C.S.Lewis

by 동네아밥 Jul 08. 2021

EXIT, BADI 찾는 프로그램

디디헌정글

이거없이 찾으려면 넘 빡침


REPORT ZBADISEARCH.
 
 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-ULINE.
       FORMAT COLOR COL_HEADING INTENSIFIED ON.
 
 * Sorting the internal Table
       SORT JTAB BY OBJECT.
       DATA : WF_TXT(60)     TYPE C,
              WF_SMOD        TYPE I,
              WF_BADI        TYPE I,
              WF_OBJECT2(30) TYPE 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 ON,
         41 SY-VLINE ,
         42 WF_TXT,
         105 SY-VLINE.
         AT END OF OBJECT.
           WRITE : /(105) SY-ULINE.
         ENDAT.
 
 
       ENDLOOP.
 
       WRITE:/(105) SY-ULINE.
 
 
 
       SKIP.
       FORMAT COLOR COL_TOTAL INTENSIFIED ON.
       WRITE:/ 'No.of Exits:' , WF_SMOD.
       WRITE:/ 'No.of BADis:' , WF_BADI.
 
     ELSE.
       FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
       WRITE:/(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(8) EQ '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.

작가의 이전글 텍스트심볼 (TEXT-000) 검색
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari