The purpose of this blog is to show the different ways of searching points to enhance SAP applications without having to modify SAP standard system.
Business case and philosophy
There is a business requirement which is not completely covered by SAP standard application. Before starting to think of modifying SAP standard or in a custom development which would mean a significant effort for the company not only at development but also to support it, it is worth to investigate if any of the alternatives given by SAP to enhance its applications could be used to cover the requirement.
When we talk in general about a user-exits, enhancements, BAdI’s… we mean a way to enhance SAP standard applications. In general they all work in similar way:
- SAP delivers the points where allows customers to modify SAP standard logic.
- Customer implements their logic in these points.
History
- In the beginning there were user-exits.
- Then customer-exits were added, wrapped in Enhancements and Projects.
- Afterwards, Business Transaction event came for Finance.
- A big step was done with Business Add-In’s (BAdI’s)
- And finally, Enhancement Framework was delivered containing New BAdI’s, explicit enhancements and implicit enhancements.
Currently all these ways live together in SAP systems and frequently you can see in the code BAdIs, customer-exits and user-exits at same point.
How to find enhancements
- Search in customizing
- Use SE84, filtering by package of your transaction (you get the package in SE93)
- SE80 - Enhancement Framework section
- What to search in the code and where to put breakpoints to find enhancements while debugging.
Enhancement type |
Transact. |
Search in code for |
Breakpoint at |
User exit |
-- |
userexit |
-- |
Customer exit |
SMOD
CMOD |
CUSTOMER-FUNCTION
(SE37: EXIT_<prog>_*) |
“CALL CUSTOMER-FUNCTION” |
BTE |
FIBF |
OPEN_FI_PERFORM_*
OUTBOUND_CALL_* |
“BF_FUNCTIONS_FIND” and
“PC_FUNCTION_FIND” |
BAdI – classic |
SE18
SE19 |
CL_EXITHANDLER
- EXIT_NAME gives you the BAdI’s name.
- Follow interface type of referenced variable to navigate to BAdI definition.
|
(SE24)
CL_EXITHANDLER=>GET_INSTANCE
CALL METHOD cl_exithandler=>get_class_name_by_interface
BAdI name is returned in exit_name. |
BAdI – new |
SE18
SE19 |
GET BADI
Follow variable to see BAdI and to navigate to enhancement spot. |
GET BADI
Check variable values to see BAdI’s name. |
Enhancement-point |
-- |
ENHANCEMENT-POINT |
-- |
Enhancement-section |
-- |
ENHANCEMENT-SECTION |
-- |
- How to put all breakpoints at once
Implicit enhacement points
Implicit enhancement points are options to insert source code in SAP programs, functions modules and methods without making modifications.They are at certain points in the SAP program and they are not explicitly provided by SAP Development.
You can find implicit enhacement points at
- The beginning and at the end of the source code of a function module.
- The beginning and at the end of the source code of a method.
- Implement additional methods.
- The end of a structure (type) declaration (to include additional fields).
- The beginning and at the end of subroutines (to enhance additional functions).
- The end of includes (to implement additional functions and subroutines).
You can see implicit enhancement points in ABAP code, from ABAP editor
I hope it helps.