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.
Customer exits are nothing but a include in customer name space will be provided in the function module which starts with CALL CUSTOMER. You can fill them with your own source code. Technically this is an enhancement. User exits generally refer to SD module while customer exits refer to all modules like MM, SD, PP, FICO etc.Advantages of Customer Exits:
- They do not affect standard SAP source code .
- They do not affect software updates .
Disadvantages of Customer Exits:
- 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.
Types of Customer Exits
- Function Module exits.
- Screen exits.
- Menu exits.
Function module exits are exits developed by SAP. The exit is implemented 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.Format: CALL CUSTOMER-FUNCTION '910' The naming standard of function modules for function module exits is:
EXIT_Examples: Function Module Exits: EXIT_SAPMF02K_001.
_<3 digit suffix>.
2. Screen Exits:
Allow customer to add fields to a screen via a sub screen in an SAP program. The sub screen is called within the standard screen's flow logic. For this we need to implement FM Exits/Menu Exits to write the logic for Screen Exits . All screen exits will be subscreens.3. Menu exits:
Menu exits allow you to add your own functionality to menus. Menu exits are implemented by SAP and are reserved menu entries in the GUI interface. The developer can add his/her own text and logic for the menu.Function codes for menu exits all start with "+". Format: +CUS (additional item in GUI status)
Methods to find out customer Exits:
There are numbers of way by using we can find out Customer Exits.
Enhancement : It is a group or container of the FM exits/Menu Exits/Screen Exits .
Project: It is an SAP Object which contains list of Enhancements. A project must be created for each enhancement so that the corresponding exits in an enhancement will be in active state.So, A project is group of Enhancements An Enhancement cannot be linked to more than one project. It throws error CMOD is the Tcode for creating a project.
Finding customer exit with CALL CUSTOMER
We know every transaction is linked to a program, all customer exits(Function Modules) inside programs starts with CALL CUSTOMER, so we can use CALL CUSTOMER to find them.Example of finding customer exit for VA01 T-code
VA01, is a t-code used for creating sales order, to find customer exit for VA01, go to t-code VA01, system, status.
A pop up will open, you can find the program name, copy the program name and go to SE38, display ( simply double click to go to program source ).
Once you go to program source, click on find icon.
A pop up will open, search for the word CALL CUSTOMER in main program.
You will find the list of Function Modules with the word CALL CUSTOMER.
Double click on function module CALL CUSTOMER-FUNCTION '911', you can see a include 'INCLUDE ZXOIKU46', that`s where you can implement your own functionality .