Skip to main content

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
Golden Rule

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:

  • INCLUDE programs
  • FORM routines

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

Legacy Technique

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

Interview Reality

Customer exits are frequently asked in interviews, but are not recommended for new development.

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

Modern Standard

BAdIs are the preferred enhancement technique in ABAP 7.5+ and S/4HANA.

Classic BAdI vs New BAdI​

AspectClassic BAdINew BAdI
TechnologyPre-Enhancement FrameworkEnhancement Framework
Multiple ImplementationsLimitedFull support
Filter SupportLimitedStrong
UsageLegacyRecommended

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

Enhancement Framework

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.
Use with Care

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.
Best Practice

Prefer explicit enhancement points over implicit ones.

8. Modification vs Enhancement​

AspectModificationEnhancement
Upgrade Safe❌✅
SAP Recommended❌✅
MaintenanceDifficultManageable
UsageLast resortPreferred
Last Resort Rule

Use modifications only when no enhancement option exists and always document them.

9. How to Choose the Right Enhancement Technique​

Decision Guide (7.5+)
  • Look for BAdI

  • Look for explicit enhancement point

  • Use implicit enhancement cautiously

  • Avoid user/customer exits for new logic

  • Avoid modifications

10. Common Mistakes​

Avoid These
  • 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

Learning Tip

Enhancement knowledge separates junior developers from real SAP professionals.