10-15-2007 4:27 PM
hi friends,
i was trying to learn how to code user exits, i was following some document i found on this sdn.sap, the process says that, find out the program name , then goto that program through se38 , and then search for " call customer function " , but when i went that way,
i could not find any " call customer function " , instead there aere around 25 INCLUDES tehre, if i have to code inside these includes, how do i find which include is correct one for my work, i could not find documentations for any of these includes,
please some one guide me , how to find correct user exit, and how to code it.
10-15-2007 4:29 PM
Hi,
Please check this sample code on how to find user exits for a given transaction code.
http://www.erpgenie.com/abap/code/abap26.htm
Regards,
Ferry Lianto
10-15-2007 4:29 PM
Hi,
Please check this sample code on how to find user exits for a given transaction code.
http://www.erpgenie.com/abap/code/abap26.htm
Regards,
Ferry Lianto
10-15-2007 4:33 PM
Hi Sanjana,
Just run the below report in se38 to find required user exit.
REPORT YUSEREXIT NO STANDARD PAGE HEADING.
&----
*& Report YUSEREXIT *&
&----
*& Finding the user-exits of a SAP transaction code
*&
*& Enter the transaction code in which you are looking for the user-exit
*& and it will list you the list of user-exits in the transaction code.
*& Also a drill down is possible which will help you to branch to SMOD.
*&
*&----
*
TABLES : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
TABLES : tstct.
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
PARAMETERS : p_tcode TYPE tstc-tcode OBLIGATORY.
SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.
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 = '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.
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.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No of Exits:' , sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.
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.
REWARD POINTS if it is useful.
regards.
Vishnu.
10-15-2007 4:57 PM
thanks friends, for the reply,
i have this code, but when i mentioned this in an interview , he clearly said, very unproffesional, way, and we dont get all the user exits with this,
any other way around friends,
even if this program is allowed it just gives, the exits available for the given tcode, but doent tell anything, like, which one suits my requirement.
i appreciate your help.
10-15-2007 5:15 PM
Hi,
The above sample codes will give a short cut to find all corresponding user exits available.
To find the exact user exits which meet your requirement, you will need to try one by one the above user exits by placing a break point and do the debugging. There is no easy way based on my past experiences.
Sometimes, you may need to use BADI instead user exits.
Regards,
Ferry Lianto
10-15-2007 5:25 PM