on 2007 Aug 31 8:58 AM
Hello,
Please read through the following,
A. Introduction:
************************************
User exits (Function module exits) are exits developed by SAP.
The exit is implementerd as a call to a functionmodule.
The code for the function module is written by the developer.
You are not writing the code directly in the function module,
but in the include that is implemented in the function module.
The naming standard of function modules for functionmodule exits is:
EXIT_<program name><3 digit suffix>
The call to a functionmodule exit is implemented as:
CALL CUSTOMER.-FUNCTION ❤️ digit suffix>
Example:
The program for transaction VA01 Create salesorder is SAPMV45A
If you search for CALL CUSTOMER-FUNCTION i program
SAPMV45A you will find ( Among other user exits):
CALL CUSTOMER-FUNCTION '003'
exporting
xvbak = vbak
xvbuk = vbuk
xkomk = tkomk
importing
lvf_subrc = lvf_subrc
tables
xvbfa = xvbfa
xvbap = xvbap
xvbup = xvbup.
The exit calls function module EXIT_SAPMV45A_003
B. How to find user exits?
****************************
There are 3 main ways to find exits
1) Option 1 : you don't know the name or dont have any info on user exit
************************************************************************************
run T-code : SPRO
SPRO -> Click SAP Reference IMG -> click in the relevant module eg: SD (sales and Distribution) ->System Modifications -> User exits
You can view documentation to understand the purpose of that user exit
It is not that always one can find the user exits under the name "System modifications" but with respect to a module definitely user exits can be found under that module in SPRO
OR you know the program in which exit needs to be trigerred
se38 ->enter standard program name -> click display ->
search -> in the search box CALL CUSTOMER (in main program)
if you find anything,this is the function module which will call for your exit
Please remember that SAP uses many programs for running a standard t-code and
hence may use many programs...pls reconfirm if the user exits are available using a sample program given below
2) Option 2 : You know the name of the user exit
************************************************************************************
Run Tcode : SMOD -> fill in the enhancement name-> click on attributes and then components or directly on components and view the include...if already a code is written in the include,then on double click of include you can see the code...if an existing code is not there and you double click on the include,SAP prompts for a request
3)Option3: You can use the custom code..which was contributed to SDN
*******************************************************************************************
Create a new report program -> copy the code -> activate -> run
on the p_tcode : give the name of the tcode for which you need to find the user exits and execute...a list of exits will be displayed...double click and follow the link
**********************************ABAP CODE :***********************************
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 : v_devclass like tadir-devclass.
parameters : p_tcode like 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 if the suggestions were found useful
Regards
Byju
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
70 | |
10 | |
10 | |
7 | |
6 | |
6 | |
6 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.