cancel
Showing results for 
Search instead for 
Did you mean: 

Define user exist

Former Member
0 Kudos

Hi All,

Can someone define what user exist is all abou and how it is functioning

Accepted Solutions (1)

Accepted Solutions (1)

Lakshmipathi
Active Contributor
0 Kudos

Dear venugopal

User exits offer you the option of enhancing existing functions according to your personal requirements.

Userxits allow us to add our own functionality to SAP standard program without modifying it . These are implemented in the form of subroutines and hence are also known as FORM EXITs. The userexits are generally collected in includes and attached to the standard program by the SAP.

All Userexits start with the word USEREXIT_...

In short, if the client's requirement is not addressed in standard and if you feel that the requirement is genuine, you can address it through user exits.

Some of the user exits that you can apply in SD are

User exits in the program MV45AFZZ

- USEREXIT_FIELD_MODIFICATION

This user exit can be used to modify the attributes of the screen fields.

- USEREXIT_MOVE_FIELD_TO_VBAK

Use this user exit to assign values to new fields at sales

header level. It is described in the section "Transfer of t

customer master fields into the sales document".

The user exit is called up at the end of the FORM routine

VBAK_FUELLEN.

- USEREXIT_MOVE_FIELD_TO_VBAP

Use this user exit to assign values to new fields at sales document item level. It is described in the section "Copy customer master fields into the sales document".

The user exit is called up at the end of the FORM routine

VBAP_FUELLEN.

- USEREXIT_NUMBER_RANGE

Use this user exit to define the number ranges for internal document number assignment depending on the required fields. For example, if you want to define the number range depending on the sales organization (VKORG) or on the selling company (VKBUR), use this user exit. The user exit is called up in the FORM routine BELEG_SICHERN.

- USEREXIT_SAVE_DOCUMENT

Use this user exit to fill user-specific statistics update tables.

The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.

If a standard field is changed, the field r185d-dataloss is set to

X. The system queries this indicator at the beginning of the safety routine. This is why this indicator must also be set during the maintenance of user-specific tables that are also to be saved.

thanks

G. Lakshmipathi

Former Member
0 Kudos

Dear Laksh,

How to view the different user exist been used

Lakshmipathi
Active Contributor
0 Kudos

Dear venugopal

If you want to see what user exits is applied to your sale order, go to VA02, input the sale order reference and execute. On top left, next to green tick button, input /h and enter so that you will get a message [Debugging switched on] Save the sale order so that it will take to a screen where with the help of ABAPer, you can find out what user exit is used.

thanks

G. Lakshmipathi

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi

User exits are like hooks in standard program. We can write our own coding in the user exit. SAP has given the standard exits to include our own codes.

Ex: If you want to use a different logic to determine the nuber range for your billing document. For this, User exit '' Exit_number_billing' is used. In this exit you have to write your logic to determine the number for your billing document.

Former Member
0 Kudos

Hi Venu,

User exit - A user exit is a three character code that instructs the system to access a program during system processing.

The original purpose of user exits was to allow the user to avoid modification adjustment.

 A user exit is considered a modification, since technically objects in the SAP namespace are being modified.

The SAP developer creates a special include in a module pool. These includes contain one or more subroutines routines that satisfy the naming convention userexit_<name>.

SXX: S is for standard exits that are delivered by SAP. XX represents the 2-digit exit number.

UXX: U is for user exits that are defined by the user. XX represents the 2-digit exit number

Thanks,

Raja

Former Member
0 Kudos

.1. Introduction

2. How to find user exits

3. Using Project management of SAP Enhancements

1. 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 writeen 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_<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

2. How to find user exits

Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT

If you know the Exit name, go to transaction CMOD. Choose menu Utillities->SAP Enhancements. Enter the exit name and press enter.

You will now come to a screen that shows the function module exits for the exit.

3. Using Project management of SAP Enhancements

We want to create a project to enahance trasnaction VA01

Go to transaction CMOD

Create a project called ZVA01

Choose the Enhancement assign radio button and press the Change button

In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an enhancement can only be used i 1 project. If the enhancement is allready in use, and error message will be displayed

Press Save

Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.

Now the function module is displayed. Double click on include ZXVVAU04 in the function module

Insert the following code into the include: E_KUNNR = '2155'.

Activate the include program. Go back to CMOD and activate the project.

Goto transaction VA01 and craete a salesorder. Note that Sold-to-party now automatically is "2155"

2.Finding the user-exits of a SAP transaction 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.

*---End of Program

Reawrd if helpful,

Cheerzz..

Subbz..