Site Search

Thursday, April 1, 2010

Report to find Badis, Exits, enhancements



*&---------------------------------------------------------------------*
*& Report  ZKS_BADIFIND
*&
*&---------------------------------------------------------------------*
*& To Find Badi, exits, enhancements 
*&
*&---------------------------------------------------------------------*

REPORT  ZBADI_FIND.

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.

No comments:

Post a Comment