It allows us to add our own functionality to SAP’s standard business application without having to modify the original applications.
SAP creates enhancements for specific programs, screens and menus within standard R/3 applications. These enhancements do not contain any functionality.
Instead, the enhancements act as hooks where we can hang our own add-on functionality onto these hooks.
Advantages with Enhancements:
• They do not affect standard SAP source code.
• They do not affect software updates
NOTE: Customer enhancements may not be available for all programs and screens found in the SAP system. You can only use customer exits if they already exist in SAP System.
- Using Function Modules
- Are called Customer Exits
- Using Classes and Methods
- Are called BADIs
Procedural, we have two types.
1 – Using Subroutines.
2 – Using Function Modules.
Types of Exits
Entire SAP Product can be divided in to 3 parts:
- Screens (Front End)
- Tables (Back End)
Screen and Menu Exits to enhance the Front End
Function Exits to enhance the programs
APPEND STRUCTURES/CI Includes to enhance Back End
Menu Exits add items to pull down menus in standard SAP applications. The menu items can be used to call up own screens or to trigger entire add-on applications.
These can be created by defining special menu items in Menu Painter.
Screen Exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer sub-screen from the standard screen’s flow logic.
Function Module Exits add functionality to R/3 applications. They play role in both menu and screen exits.
When new items are added to standard menu, function module exit is used to define the actions that should take place once menu is activated.
Function module ecits also control the data flow between standard programs and screen exit fields.
Note: We can take the advantage of the exits only when SAP provides it in the Standard Transactions.
To locate the exits for any transaction:
Ther are many way for locating the exits, we go through the commonly used ones:
1. Goto SE93 – find the program for the transaction – goto program and find the Package / Development Class bu going to –
GOTO – ATTRIBUTES.
Now, goto SMOD transaction, find out the enhancement for package / development class by pressing F4 on enhancement.
Enter the name of Development Class / Package of the standard program.
Enhancements will be displayed. Select individual enhancement (in case more than one enhancement are there).
Enter enhancement name, select component option and click on display.
Observe the function module exits.
2. Use a piece of code – redundantly available online to pass the transaction and it returns all the enhancements used in the transaction.
3. Open the program in display mode and find the string CALL_CUSTOMER
Double click on CALL CUSTOMER function module exit.
Link to Short Tutorial on User Exits