*&---------------------------------------------------------------------*
*& Report ZFINDADDITION
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Report Z_FIND_USEREXIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFINDEXIT NO STANDARD PAGE HEADING .
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 .
*& Report ZFINDADDITION
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Report Z_FIND_USEREXIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFINDEXIT NO STANDARD PAGE HEADING .
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 .