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.