12-05-2007 10:45 AM
Hi All
I need to make changes in the user exit and there are many user-exits in the standard program here my question is how to find the correct user-exit which suits our requirement.
Thanks
srini
12-05-2007 10:48 AM
Hi Srini,
Use the matchcode ( with key words) in SMOD, or search the forum for the useful abap z_find_userexit.
Hope this helps,
Erwan
12-05-2007 10:50 AM
To find the exits we one simple process.
goto SMOD tcode Utilites->find and give the package and press F8.
12-05-2007 11:14 AM
Hi Sreenivas,
I think U r able to find user exits related to ur program.
If it is right try to find with description given to that exit.
Then u just write 'break-point' in expected exits and execute ur program.
Then u can easily find correct exit.
regards,
Subbu
12-05-2007 11:24 AM
run this program by giving ur t code...and click the exit it will go to SMOD there u read the documentation of that exit..if ur requirement satisfies try to use that one..
REPORT ZUSEREXIT.
*report zuserexit no standard page heading.
tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
tables : tstct.
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : devclass like tadir-devclass.
parameters : tcode like tstc-tcode obligatory.
select single * from tstc where tcode eq 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 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 devclass.
endif.
endif.
select * from tadir into table jtab
where pgmid = 'R3TR'
and object = 'SMOD'
and devclass = devclass.
select single * from tstct where sprsl eq sy-langu and
tcode eq tcode.
format color col_positive intensified off.
write:/(19) 'Transaction Code - ',
20(20) 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.
12-05-2007 11:27 AM
well if you dont know the exits by name and what they are there for, then it´s quite a hard task.
i didnt yet encounter a better way, so i use following steps:
- Check the names of the user-exits and see if theres something that sounds like it could fit for my requirement.
if i found something, i go there with the debug mode, and check if all data i need is available at this point.
Then i check whether the data changes i do there take effect. Yeah i change values in the debugger and proceed.
if both questions can be answered positive, then i stop searching and implement my code.
if i didnt found any user-exit whichs name sounds promising, then i try the first, then the last, the second, the one before the last... and so on, until i found one where my data i need is there, and where the changes made take the wished effect.