Module 15: SAP Enhancements & Modifications
SAP enhancements allow customers to extend standard SAP functionality without modifying SAP code.
Understanding enhancement techniques is critical for upgrade safety, supportability, and Clean ABAP design.
1. Why Enhancements?
SAP delivers standard code, but:
- Every customer has custom business rules
- Modifying SAP standard code is not upgrade-safe
- Enhancements allow controlled extensibility
Never modify SAP standard code unless there is absolutely no alternative.
2. User Exits (Legacy)
What are User Exits?
User exits are predefined enhancement points provided by SAP, typically implemented using:
INCLUDEprogramsFORMroutines
They are usually found in:
- SD
- MM
- FI legacy programs
FORM userexit_move_field_to_vbak.
vbak-zzfield = 'X'.
ENDFORM.
Characteristics
-
Procedural
-
Hard to discover
-
Poor encapsulation
-
Global data dependency
User exits exist mainly for maintenance of old systems. Do not use them in new developments.
3. Customer Exits (Legacy but Common)
What are Customer Exits?
Customer exits are SAP-provided exits implemented via:
-
Function modules
-
Project in transaction CMOD
Typical naming:
-
Enhancement: SAPMV45A
-
Exit FM: EXIT_SAPMV45A_001
CALL CUSTOMER-FUNCTION '001'.
Characteristics
-
More structured than user exits
-
Still procedural
-
Requires CMOD project
Customer exits are frequently asked in interviews, but are not recommended for new development.
4. Business Add-Ins (BAdIs) – Recommended
What is a BAdI?
A BAdI (Business Add-In) is an object-oriented enhancement technique.
METHOD if_ex_example_badi~execute.
" Custom logic
ENDMETHOD.
Key Features
-
OO-based
-
Supports multiple implementations
-
Filter-dependent logic
-
Runtime activation/deactivation
BAdIs are the preferred enhancement technique in ABAP 7.5+ and S/4HANA.
Classic BAdI vs New BAdI
| Aspect | Classic BAdI | New BAdI |
|---|---|---|
| Technology | Pre-Enhancement Framework | Enhancement Framework |
| Multiple Implementations | Limited | Full support |
| Filter Support | Limited | Strong |
| Usage | Legacy | Recommended |
5. Enhancement Framework (Modern)
The Enhancement Framework is SAP’s unified mechanism for enhancements.
Types of Enhancements
-
Explicit enhancement points
-
Implicit enhancement points
-
Enhancement sections
Introduced to replace classic exits with a consistent, OO-based approach.
6. Implicit Enhancements
What are Implicit Enhancements?
Implicit enhancement points exist:
-
At the start/end of programs
-
At start/end of methods
-
At start/end of function modules
ENHANCEMENT 1 z_enh_start.
" Custom logic
ENDENHANCEMENT.
Implicit enhancements are powerful but can make code hard to trace.
7. Explicit Enhancements
What are Explicit Enhancements?
Explicit enhancement points are intentionally placed by SAP developers.
ENHANCEMENT-POINT ep_example SPOTS es_example.
Implementation:
ENHANCEMENT 1 z_enh_example.
" Custom logic
ENDENHANCEMENT.
Prefer explicit enhancement points over implicit ones.
8. Modification vs Enhancement
| Aspect | Modification | Enhancement |
|---|---|---|
| Upgrade Safe | ❌ | ✅ |
| SAP Recommended | ❌ | ✅ |
| Maintenance | Difficult | Manageable |
| Usage | Last resort | Preferred |
Use modifications only when no enhancement option exists and always document them.
9. How to Choose the Right Enhancement Technique
-
Look for BAdI
-
Look for explicit enhancement point
-
Use implicit enhancement cautiously
-
Avoid user/customer exits for new logic
-
Avoid modifications
10. Common Mistakes
-
Modifying SAP standard code
-
Overusing implicit enhancements
-
Writing large logic blocks in exits
-
Ignoring performance impact
-
Not documenting enhancements
11. Summary
-
Enhancements allow safe extension of SAP standard
-
User exits & customer exits are legacy
-
BAdIs are the modern, OO-based solution
-
Enhancement Framework unifies enhancement techniques
-
Prefer explicit over implicit enhancements
-
Avoid modifications
12. Practice Exercises
-
Identify enhancement options in a standard program.
-
Implement a simple BAdI.
-
Create an implicit enhancement and analyze impact.
-
Compare a customer exit vs BAdI use case.
-
Document an enhancement properly.
13. What’s Next?
➡️ Module 16: ABAP 7.4 / 7.5 Syntax Enhancements
Enhancement knowledge separates junior developers from real SAP professionals.