Monday, 23 February 2015

Report to find Exits

*&---------------------------------------------------------------------*
*& Report  ZTESTV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTESTV.

TABLES TSTC,

TADIR,

MODSAPT,

MODACT,

TRDIR,

TFDIR,

ENLFDIR,

SXS_ATTRT ,

TSTCT.

DATA JTAB LIKE TADIR OCCURS 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(20P_TCODE,

45(50TSTCT-TTEXT.

SKIP.

IF NOT JTAB[] IS INITIAL.

WRITE:/(105SY-ULINE.

FORMAT COLOR COL_HEADING INTENSIFIED ON.

* SORTING THE INTERNAL TABLE

SORT JTAB BY OBJECT.

DATA WF_TXT(60TYPE C,

WF_SMOD TYPE ,

WF_BADI TYPE ,

WF_OBJECT2(30TYPE C.

CLEAR WF_SMODWF_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,

'Enhancement/ Business Add-in',

41 SY-VLINE ,

42 'Description',

105 SY-VLINE.

WRITE:/(105SY-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,

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 + .

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,

WA_TADIR-OBJ_NAME HOTSPOT ON,

41 SY-VLINE ,

42 WF_TXT,

105 SY-VLINE.

AT END OF OBJECT.

WRITE /(105SY-ULINE.

ENDAT.

ENDLOOP.

WRITE:/(105SY-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(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.