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: 

User-Exits

Former Member
0 Kudos
422

Pls tell me what are User-Exits ? How they are used ? with Example

4 REPLIES 4

Former Member
0 Kudos
101

User Exits:

-


User exits allow you to add additional functions to the SAP standard.

Programs with user exits contain subroutine calls at certain points in their syntax that are identified by the prefix USEREXIT. The actual user exits are located in an include that has been assigned to a module pool. This is where customers can include any changes (enhancements) that they want to make to the system. These includes are always processed during program flow.

Advantage: In principle, customers can modify anything they want that is found in the include (tables, structures, and so forth).

Disadvantage: SAP cannot check the individual enhancements themselves which often leads to errors in the enhancement process.

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.

Customer exits are not available for all programs and screens found in the SAP System. You can only use customer exits if they already exist in the SAP System.

Customer Exit

-


SAP creates customer exits for specific programs, screens, and menus within standard 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.

If you want to enhance the functionality of your SAP System, you should take advantage of the exits available in standard applications. There are two main reasons why you should use exits rather than modifying SAP software yourself. Add-ons attached to exits have the advantage that:

• They do not affect standard SAP source code

When you add new functionality to your SAP System using SAP’s exits, you do not alter the source code of standard SAP programs in any way. The code and screens you create are encapsulated as separate objects. These customer objects are linked to standard applications, but exist separately from SAP’s standard software package.

• They do not affect software updates

When you add new functionality to your SAP System using SAP’s exits, your objects (called customer objects) must adhere to strict naming conventions. When it comes time to upgrade a to a new software release, customer objects’ names ensure that they will not be affected by any changes or new additions to the standard software package.

Customer exits are not available for all programs and screens found in the SAP System. You can only use customer exits if they already exist in the SAP System. You find find more information about locating applications with pre-defined exits in Locating Applications that have Exits

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/abap/abap-code-sam...

In order to find out the user exits for any tcode,

1. get the developement class of the tcode from SE93.

2. Now goto transaction SMOD and press F4,

3. give in the Deve class in the dev class and Press ENTER

this will show u the exits for any tcode.

or execute this report

http://www.erpgenie.com/sap/abap/code/abap26.htm

which gives the list of exits for a tcode

http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm

For information on Exits, check these links

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sapgenie.com/abap/code/abap26.htm

http://www.sap-img.com/abap/what-is-user-exits.htm

http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

http://www.easymarketplace.de/userexit.php

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sappoint.com/abap/userexit.pdfUser-Exit

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc

http://www.easymarketplace.de/userexit.php

http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm

Regards,

Santosh

Former Member
0 Kudos
101

R/3 provides three "customization spots" that allow you to enhance FI/CO features without modifying the standard code. Although often collectively referred to as "user exits," two of the three have different names. SAP Enhancements are used to expand the standard functionality within SAP. Enhancements use function modules and are called from the standard SAP code. Each module in the system has a set of delivered enhancements that help companies expand the standard functionality where they need it. Enhancements were new in release 3.0.

The Open FI Interfaces or Business Transaction Events are also used to expand the standard functionality within SAP. These events are defined in the IMG. Business Transaction Events were new in release 4.0. They are not available for all modules and are not called on all integrated transactions into FI as of release 4.5B. This will change with each release and should be retested.

The older User Exits in FI/CO are "Z" programs that are defined in table T80D for client-dependent user exits, and in table T80I for client-independent user exits. These are also used to expand the standard functionality within the FI/CO modules. These User Exits have been available since the early releases of SAP. All of these FI/CO User Exits are listed in this document in the Configuring User Exits (Older). The list is included because these User Exits are not a part of the Enhancements or Business Transaction Events and do not have an Info System for searching.

Benefits

• Standard SAP functionality can be enhanced without modification to the standard code.

• Upgrades do not erase the functionality and it does not have to be re-transported or re-entered into the system. The enhancements should be thoroughly tested when upgrading to ensure the system will still work as implemented.

Configuring SAP Enhancements

Basic Steps in Configuring an Enhancement

• Find the appropriate Enhancement.

• Enter the ABAP code in the "Z" program within the function module.

• Create a project.

• Add the Enhancement to the project.

• Activate the project.

example

This example code is based on enhancement SUSR0001.This enhancement uses function exit EXIT_SAPLSUSF_001 .

Enhancement : SUSR0001 User Exit after logon to SAP system.

When the User logs in the system ,this exit is called each and every time for every user after logon to the R/3 system.

Function Exit : EXIT_SAPLSUSF_001 .

Every dialog user passes thrugh this function module after logon,It can be used to execute individual customer checks and send mesages to the user.

TABLE USR02 CONTAINS LOGON DATA and can be used in this exit to get the user logon data and take necessary actions as required by the customer requirement and even LOG_OFF (not recommended by SAP).

STEPS REQUIRED FOR IMPLEMETING THE EXIT

1) Open CMOD(Project maintenance) Transaction.Enter a project name starting with Z.Press enter.

2) Goto Enhancement window by clicking the enhancement button in the application tool bar.

3) Write SUSR0001 in the enhancement column and press enter.

4) Goto Components window(It will show al the exits included in this enhancement), in our case only one Function Exit will be shown.

5) Double click on the Function exit EXIT_SAPLSUSF_001.

The following function source code will be displayed in the function editor

FUNCTION EXIT_SAPLSUSF_001.

*"----


""Lokale Schnittstelle:

*"----


INCLUDE ZXUSRU01.

ENDFUNCTION.

6) Double click on the include ZXUSRU01 .If it will ask to create the include say yes .

7)Write the following code in the include.

DATA W_TEXT(30) TYPE C.

DATA W_DATE(10) TYPE C.

WRITE sy-datum TO W_DATE DD/MM/YYYY.

CONCATENATE ' Date is ' W_DATE INTO W_TEXT.

CALL FUNCTION 'POPUP_TO_INFORM'

EXPORTING

titel = 'Welcome to Paradise !'

txt1 = 'Have A Nice Day'

txt2 = W_TEXT

  • TXT3 = ' '

  • TXT4 = ' '

8)Save the include and activate it .Activate the Project also by going to the menu in CMOD transaction.Now The user exit SUSR0001 has been implemented and is ready to use.

9) Logon to the R/3 system . A dialog box will appear with the message

Welcome to Paradise ! with date .

NOTE: BAPIs like BAPI_USER_GET_DETAIL can also be used to get user info or directly read from tables USR02 etc.

PP User Exit .

This user exit is used in PP and is for u to try

MCP20020 User exit for reading info structure when transferring reqts

it contains function exit

EXIT_SAPMMCP6_020

When planned independent requirements are transferred from SOP to

program data, the data is read at material/plant level as standard. You

can use this user exit to have a greater or smaller number of

characteristics for data selection. In this case, the data is read on a

different level than that in the standard system.

The interface of this user exit corresponds to that of function module

'MC_PG_TRANSFER_PBED', but the info structure and the key fields table

(structure IKEYF) are also transferred. YF). The characteristic

attributes of the characteristics used for data must be transferred to

the user exit in field 'Value' of the key fields table.

For further information, see function module: 'MC_PG_TRANSFER_

links

ser Exit

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sapgenie.com/abap/code/abap26.htm

http://www.sap-img.com/abap/what-is-user-exits.htm

http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

http://www.easymarketplace.de/userexit.php

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sappoint.com/abap/userexit.pdfUser-Exit

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

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sapgenie.com/abap/code/abap26.htm

http://www.sap-img.com/abap/what-is-user-exits.htm

http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

http://www.easymarketplace.de/userexit.php

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sappoint.com/abap/userexit.pdfUser-Exit

http://www.sapmaterial.com/user_exit.html

Hope this helps

<b>do reward if useful....</b>

regards

dinesh

Former Member
0 Kudos
101

Hi,

User exits are predefined includes provided by SAP with some subroutines that start with "userexit-" you can put your code in these subroutines so that they are executed.

AND

Customer exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a function module. 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>

To find a Exit.

Goto Transaction -- Find The Package

SMOD >f4>Use the Package here to Find the Exits In the Package.

Else if you Want to search by Application Area wise ,

There is one more tab to find the Exits in the Respective Application Area.

Implementing the Exit-- CMOD Create ProjectsAssgn your Component .

Now Run ur Transaction to Check if it Triggers.

Thats it..

Suppose you need to find out all the user exits related to a tcode.

1. Execute the Tcode.

2. Open the SAP program.

3. Get the Development Class.

4. Execute Tcode SE84.

5. Open the Node 'Envir. -> Exit Techniques -> 'Customer Exits -> Enhancements'

6. Enter the Development class and execute.

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sapgenie.com/abap/code/abap26.htm

http://www.sap-img.com/abap/what-is-user-exits.htm

http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

http://www.erpgenie.com/sap/abap/code/abap26.htm

which gives the list of exits for a tcode

http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm

For information on Exits, check these links

http://www.easymarketplace.de/userexit.php

http://www.sappoint.com/abap/userexit.pdfUser-Exit

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

User-Exits

http://www.sap-img.com/ab038.htm

http://www.sap-basis-abap.com/sapab013.htm

http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283

These links will help you to learn more on user exits.

http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm

http://www.allsaplinks.com/user_exit.html

Also please check these threads for more details about user exits.

1. Document on UserExits in FI/CO

http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc

2. Finding User Exits...

http://sap.ionelburlacu.ro/abap/sap2/Other_Useful_Tips.html#Finding_User_Exits

3. List of all User Exits...

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

https://forums.sdn.sap.com/click.jspa?searchID=672084&messageID=312792

https://forums.sdn.sap.com/click.jspa?searchID=672084&messageID=1320078

https://forums.sdn.sap.com/click.jspa?searchID=672084&messageID=2669896

Regards,

Priyanka.

Former Member
0 Kudos
101

Hi,

Introduction

FOR EXAMPLE CHECK...

www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

SAP delivers a broad range of business functions within its R/3 application suite. The standard applications may not offer some of the functionality needed. The R/3 enhancement concept allows addition of one’s own functionality to SAP’s standard business applications.

SAP creates user exits for specific programs, screens and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the user exits act as hooks. One can hang his own add-on functionality onto these hooks.

The user exit is a point in a SAP program where a customer’s own program can be called. On upgrade, each user exit must be checked to ensure that it conforms to the standard system.

There are two types of user exit:

· User exits that use INCLUDEs.

These are customer enhancements that are called directly in the program.

· User exits that use tables.

These are used and managed using Customizing.

Purpose of the Enhancement Concept

With the ABAP/4 Development Workbench, SAP’s client-server development environment, one can create add-ons or entire applications. Before the enhancement concept existed, customers who wanted to add their own specific functions to SAP software had to modify the standard SAP programs. Modifying SAP’s software holds at least two dangers:

Modifying standard code can lead to errors

When a customer changes the source code of a standard program, these changes can have unwanted results within other parts of the application. Once a customer has begun ‘reconstructing’ a standard program, SAP can no longer guarantee that this customer’s system will run without serious errors.

Modifications mean more work during software upgrades

Customers of standard software packages often want to take advantage of software upgrades or new releases. Customers who have modified the software of their current release must save these modifications and reenter them into the new software after each upgrade or release change. Depending on the number and scope of modifications, this reentry process may make it difficult or even impossible to take advantage of new software releases.

The enhancement concept offers a better alternative to the problem-ridden modification approach.

Reason for Using Exits

If you want to extend the functionality of your R/3 System, you should take advantage of the user exits available within the standard R/3 applications. There are two main reasons why you should use exits rather than modifying SAP software. Add-ons that are attached to user exits have the advantage that they:

Do not affect standard SAP source code

When you add new functionality to your R/3 System using SAP’s user exits, you do not change the source code of standard SAP programs. The code and screens you create are encapsulated as separate objects. These customer objects are linked to standard applications, but they exist apart from SAP’s standard software package.

Do not affect software upgrades

When you add new functions using SAP’s user exits, the objects you develop are customer objects. Customer objects adhere to strict naming conventions. When the time comes to upgrade a software release, the special names of customer objects ensure that they will not be affected by either changes or additions within the standard software package. As a result, you do not need to save and then reenter add-ons attached to user exits.

User exits are not available for all programs and screens within the R/3 standard applications. One can only use exits if they already exist within the SAP R/3 System. Locating Applications that Have Exits explains how to find applications with predefined exits.

If no user exit is available in an area to add a particular functionality, a request can be made to SAP to develop an exit. This request can be made via the Online Service System (OSS).

Navigation

To take advantage of user exits they have to be added to a standard application by SAP. For this reason, it is necessary to know how to locate the exits available within the R/3 System. SAP organizes its user exits in packages that are called SAP enhancements. Each SAP enhancement can contain many individual exits.

From within the ABAP/4 Development Workbench menu choose Utilities ® Enhancements ® Project management. To call up a selection screen that lets one look for the exits available in standard applications, choose Utilities ® SAP enhancements. If no information about the name of specific enhancement packages is available, one can search for all enhancements belonging to a particular development class or to a set of development classes. To list all enhancements in the entire system, the Execute function without specifying any selection criteria is chosen.

1. Customer exits: Implemented as Function Modules within z includes. Anybody can change it and no access key is required.

2. User Exit: Implemented as subroutines within includes (any include except y or z includes). You need access for the specific include and then you can any subroutine (user exit) within that Include.

BADIs are the enhanced version of user exits where the same logic is implemented via classes and object (OOP)

Enchancement point is the latest once introduces with ECC6.0 . Not very sure about that but you can change it without any access key.

Please go through the following link which will help you understand the exits in a much better way:

http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec07a25db911d295ae0000e82de14a/content.htm

http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm

http://sap.niraj.tripod.com/id21.html

http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm

http://www.sap-img.com/ab038.htm

User Exits.

-

-


http://www.erpgenie.com/sap/abap/code/abap26.htm

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sapgenie.com/abap/code/abap26.htm

http://www.sap-img.com/abap/what-is-user-exits.htm

http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

http://www.easymarketplace.de/userexit.php

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sappoint.com/abap/userexit.pdfUser-Exit

customer exits

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f1a7e790-0201-0010-0a8d-f08a4662...

Menu Exit.

http://www.sappoint.com/abap/spmp.pdf

http://www.sappoint.com/abap/userexit.pdf

http://www.sapdevelopment.co.uk/enhance/mod_sapmenu.htm

http://www.sapdevelopment.co.uk/enhance/enhancehome.htm

1. Previously there were only user-exits.

2. Then came the concept of customer-exits.

3. user exits were nothing but subroutines

FORM/PERFORM

called from standard programs.

4. The FORM defintion was placed inside

an empty include file.

5. So It was called EVERYTIME.

and we need to MODIFY/REPAIR the

standard include .

6. Then it came with concept of customer-exit

7. 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.

8. 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.

Exits are basically the hooks whcih SAP has provided to add your own code.

refer to the following links

http://www.sap-basis-abap.com/sapab013.htm

http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283

Reward points

Regards