2/1/2016 7:21:16 AM
This blog will show you about finding customer exits(Function exit, Menu exit and Screen exit) in SAP ABAP. Customer exits are nothing but a customer name space include and it will be provided in the function module which starts with CALL CUSTOMER. You can fill them with your own source code. This is an old enhancement technique but still many places no other enhancements like BADI and enhancement spot.
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 into these hooks.
Advantages of Customer exit in SAP:
- It will not affect standard SAP source code
- It will not affect any software upgrades like implementing SAP OSS notes and patch installations
Disadvantage of Customer exit in SAP:
- Customer exits are not available for all programs and screens SAP System. You can only use the customer exits if it is already exists in the SAP System.
Types of Customer Exits
1. Function Module exits
2. Screen exits
3. Menu exits
There are many ways to find Customer Exits.
Method 1. Using CALL CUSTOMER-FUNCTION in debugging
Goto your transaction code and use system debugging(/h)
Breakpoint at CALL CUSTOMER-FUNCTION
It means that it will call the function module 'EXIT_SAPMF02K_001', which only contains this code: INCLUDE ZXF05U01 .
Go to SE37 and use EXIT_SAPMF02K_001 and we can see the function module signatures.
Which calls function module EXIT_<program name>_<3 digit suffix> (where <program name> is the program which calls the customer function).
Sometimes, SAP uses directly CALL FUNCTION statement because the exit needs to be called from 2 different programs.
The difference between the 2 ABAP statements is that CALL CUSTOMER-FUNCTION does NOT call the function module if it is not linked to an active project (see below "how to implement an exit"). Thus, a break-point in the function module will be ineffective.
Method 2. Using by package name
Enter the transaction code in the command bar, for which you would like to search for an user exit and then click on enter, so that it would take you to the initial screen of the transaction.
Go to Menu bar - Click on 'System' and then click on 'Status' as shown in the below screen shot.
Double click the program
Once you get the package name execute the transaction code SE80 (We can also try with SE84) and then click on 'Repository Information System'.
As soon as you done with the above step the system would display the respective Objects list, here drill down Enhancements and then Customer Exists.
Now, double click on Enhancements, which is under Customer Exists, so that the selections screen would get displayed in right side.
Here go to package field and paste the copied package number from the previous step (program) and then execute the transaction as shown in the below screen shot.
Press F8/click execute button
Method 3. Using by transaction code
- Execute the transaction code SE93 --> enter the desired transaction code in Transaction Code field and then click on Display button
- Once you click on Display button it would show the below screen, double click on the program name.
- Once the above step is done, go to Menu Bar--> click on 'Goto' and then click on 'Object Directory Entry'.
- Copy the Package name for the further process.
Once you get the package number execute the transaction code SMOD -> place cursor on Enhancement field and then press F4.
It would take you to the below screen (Repository Info Systems). Enter the package number, which has copied from the previous step. And then click on enter button.