Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Customer exit and user exits.

Former Member
0 Kudos

hi all,

what is the diff between user exits and customer exits..How do we serch both of them..and also how do we create them or modify them..please can u help me asap..

thanks,

Seema.

6 REPLIES 6

Former Member
0 Kudos

The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks."

Customer exits are implemented in Z-includes and are ENHANCEMENTS to the system.

User-exits were firstly intended to be developed for the SD module. You make your coding in includes in SAP namespace (e.g MV*). That's why, user exits are MODIFICATIONS to the system. In includes for user exits there are empty subroutines ( generally with the name convention "userexit_...") and you code using global variables of the main program.

But, generally developers use these terms without this distinction. So, someone may mean a "customer exit" when (s)he says "user exit" or vice-versa.

Former Member
0 Kudos

Hi seema

1. <b>what is the diff between user exits and customer exits</b>

2. Previously there were only user-exits.

3. Then came the concept of customer-exits.

4.

user exits were nothing but

subroutines

FORM/PERFORM

called from standard programs.

5. The FORM defintion was placed inside

an empty include file.

6. So It was called EVERYTIME.

and we need to MODIFY/REPAIR the

standard include .

7. Then it came with concept of customer-exit

8. It consists of calling a FUNCTION MODULE,

which is called only if

the user-exit is ACTIVATED (other wise not called)

In this case, the code in put inside

a pre-defined Z include.

*----


9. Functionality of both is same, howerver

we can note the following important differences

a) Customer exit is called only if activated.

(hence, it does not waste resources)

b) in customer exit, REPAIR does not happen

to the standard include.

<b>2. How do we serch both of them</b>

for customer exits, SMOD is the transaction code.

for user-exits, the functional consultant

will tell the name of the include,

on the basis of information he gets from customization.

<b>3. how do we create them or modify them</b>

for customer exit,

we first create a project in CMOD,

and assign/add enhancement names to it.

for user-exit,

we cannot create,

we just have to modify/ write lines of code

inside the FORM routines.

regards,

amit m.

Former Member
0 Kudos

Check the below link for a program to find Exists associated with a transaction code.

http://www.sapprofessionals.org/?q=program_to_find_user_exit_for_a_transaction

Or You can go to CMOD directly to view those.

Cheers,

Thomas.

Please mark points if helpful.

Former Member
0 Kudos

Hi,

Check this link

http://www.planetsap.com/Userexit_List.htm

Mark Helpfull answers

Former Member
0 Kudos

Hi,

refer:

http://sap.ittoolbox.com/groups/technical-functional/SAP-R3-DEV/503784

<b>send me ur email id for good docs on user exit.</b>

<b>Use the following program to search user exits by transaction code.</b>

report z_find_user_exit no standard page heading.

tables: tstc, tadir, modsapt, modact,

trdir, tfdir, enlfdir, tstct.

data : jtab like tadir occurs 0 with header line.

data : hotspot(30).

parameters : p_tcode like tstc-tcode obligatory.

at line-selection.

get cursor field hotspot.

check hotspot(4) eq 'JTAB'.

set parameter id 'MON' field sy-lisel+1(10).

call transaction 'SMOD' and skip first screen.

start-of-selection.

perform get_data.

perform write_list.

----


  • FORM get_data *

----


form get_data.

select single * from tstc

where tcode eq p_tcode.

check sy-subrc eq 0.

select single * from tadir

where pgmid = 'R3TR'

and object = 'PROG'

and obj_name = tstc-pgmna.

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.

endif.

endif.

select * from tadir into table jtab

where pgmid = 'R3TR'

and object = 'SMOD'

and devclass = tadir-devclass.

select single * from tstct

where sprsl eq sy-langu

and tcode eq p_tcode.

endform.

----


  • FORM write_list *

----


form write_list.

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.

endform.

rgds,

latheesh

Message was edited by: Latheesh Kaduthara

Message was edited by: Latheesh Kaduthara

Former Member
0 Kudos

Hi

I believe they have the same meaning.

The problem is there are several different exits and so there are several different ways to find out and develop them.

The tipical exit are in enhacement (CMOD trx): they are function module so you can develop them by SE37.

From rel. 4.6 there are the BADIs (trx SE18/SE19): they're based on OO concept.

There are old exit placed in particulare includes and you can find out them by SPRO: they are FORM.

Max