Program to find Badi or user exit

report ZFINDEXIT_BADI.
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.
0 comments:

Post a Comment

message

Labels

NuffNang

Search google

Blog Archive

My Blog List

Twitter

Message

Followers