Tuesday 6 September 2011

Program to find user exits and badi's

*&---------------------------------------------------------------------*
*& Report  ZUSER_EXIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ZUSER_EXIT.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 TADIRWHERE PGMID = 'R3TR'
AND OBJECT = 'PROG'
AND OBJ_NAME = TSTC-PGMNA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
IF SY-SUBRC NE 0.SELECT SINGLE * FROM TRDIRWHERE NAME = TSTC-PGMNA.IF TRDIR-SUBC EQ 'F'.SELECT SINGLE * FROM TFDIRWHERE PNAME = TSTC-PGMNA.
SELECT SINGLE * FROM ENLFDIRWHERE FUNCNAME = TFDIR-FUNCNAME.
SELECT SINGLE * FROM TADIRWHERE PGMID = 'R3TR'
AND OBJECT = 'FUGR'
AND OBJ_NAME EQ ENLFDIR-AREA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.ENDIF.ENDIF.
SELECT * FROM TADIR INTO TABLE JTABWHERE PGMID = 'R3TR'
AND OBJECT in ('SMOD''SXSD')AND DEVCLASS = V_DEVCLASS.

SELECT SINGLE * FROM TSTCTWHERE SPRSL EQ SY-LANGUAND 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(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_txtFROM MODSAPTWHERE SPRSL = SY-LANGUAND 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_txtfrom SXS_ATTRTwhere sprsl = sy-languand 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(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.

No comments:

Post a Comment