You are on page 1of 5

Find User Exit in SAP

Transaction

By
M. Fahim AM

Date: 06-Apr-2006

Requirement
In SAP transactions user/customer exits are provided by SAP to add our own
custom code to meet business requirements. These exits can be located by
multiple ways like going through IMG (SPRO transaction) and locating the user
exit for any transaction. Other is using searching for keyword Customer-Exit.
in SAP program. Both of these options are little time consuming. Instead of these
below mentioned program can be used to list user exits available for given SAP
transaction.
Developer needs to copy this program in required SAP landscape and run this.
SAP transaction code as input parameter for this report and it will list you the
user exits provided by SAP and user can click on any one and go to SMOD
transaction.
REPORT zr_find_user_exit NO STANDARD PAGE HEADING.
*----------------------------------------------------------*
This report lists the user exits available for transaction
code
* code entered by the user.
*---------------------------------------------------------TABLES : tstc,
"SAP Transaction Codes
tadir,
"Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact,
"Modifications
trdir,
"System table TRDIR
tfdir,
"Function Module
enlfdir, "Additional Attributes for Function
Modules
tstct.
"Transaction Code Texts
*---------------------------------------------------------------------DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
*--------------------------------------------------------------------*
* Selection Screen Parameters
*--------------------------------------------------------------------*

Date: 06-Apr-2006

SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text001.


SELECTION-SCREEN SKIP.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK a01.
*--------------------------------------------------------------------*
* Start of main program
START-OF-SELECTION.
* Validate Transaction Code
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.
* Find Repository Objects for transaction code
IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid
AND object

= 'R3TR'
= '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.

Date: 06-Apr-2006

SELECT SINGLE * FROM enlfdir


WHERE funcname = tfdir-funcname.
SELECT SINGLE * FROM tadir
WHERE pgmid
= 'R3TR'
AND object
= 'FUGR'
AND obj_name = enlfdir-area.
MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.

* Find SAP Modifactions


SELECT * FROM tadir
INTO TABLE jtab
WHERE pgmid
= 'R3TR'
AND object
= 'SMOD'
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:/(95) sy-uline.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.

Date: 06-Apr-2006

WRITE:/(95) sy-uline.
LOOP AT jtab.
SELECT SINGLE * FROM modsapt
WHERE sprsl = sy-langu AND
name = jtab-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 sy-vline,
2 jtab-obj_name HOTSPOT ON,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
ENDLOOP.
WRITE:/(95) sy-uline.
DESCRIBE TABLE jtab.
SKIP.
WRITE:/ 'No of Exits:' , sy-tfill.
ELSE.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.
* Following event will give user option to double click and
* take the user to SMOD for the Exit that was selected.
AT LINE-SELECTION.
GET CURSOR FIELD field1.
CHECK field1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
* END OF PROGRAM

Date: 06-Apr-2006

You might also like