Sie sind auf Seite 1von 18


Introducing: ³Enhancement Framework´
± The cool new way to enhance your ABAP systems


Software can be adapted by one of the following techniques:

Customizing :- Defining system behavior through standard SAP

provided mechanism without coding.

Enhancement :- Adding custom code at strategic hook positions

provided by SAP.

Modification :- Modifying SAP supplied code directly ± often called

he current state of enhancement

µUser-Exit¶ is one of the very first mechanisms provided by SAP to

execute custom code in between the standard SAP control flow. This is
implemented as subroutine call (PERFORM xxx).

µCustomer-Exit¶ is better than the user-exit, in the sense that it is

implemented using Function Modules and so has a well defined
parameter interface. Also since the custom coding done as part of
these customer-exits is located away from the original SAP code, the
maintenance is easier than user-exits.

he µBADI-s¶ (Business Add-Ins), as they exist in pre NW04s releases

are now called old classic-BADI¶s. This was the first object-oriented
way to enhance the ABAP system. This, to a certain extent, allows
multiple implementations.
shat is Enhancement Framework?

Enhancement Framework is the new paradigm to bring all enhancement

techniques under one roof.

The following are different enhancement technologies available under

this framework.

‡ Source Code Enhancement

‡ Function Group Enhancement
‡ Class Enhancement
‡ Kernel-BADI Enhancement
Source code Enhancement

Source Code enhancement needs to be incorporated directly into the

ABAP source code this technology is also called as Source Code Plug-In.
There are two types of Source Code enhancements possible.

‡ Implicit enhancement option

‡ Explicit enhancement option

Note : In order to implement any of these Source code enhancements,

you need to be in the µChange Enhancement mode¶ (the spiral icon
available in the editor).
Implicit enhancement option:

Implicit enhancement options are automatically available at certain pre-

defined places. Some of the implicit options are:

‡ At the end of all the programs (Includes, Reports, Function pool,

Module pool, etc.), after the last statement.

‡ At the beginning and end of all FORM subroutines.

‡ At the end of all Function Modules.

‡ At the end of all visibility areas (public, protected and private) of local
Implicit Enhancement Option:

Explicit Enhancement Option:

Explicit enhancement options are provided at specific source code places

explicitly by SAP.

A Two types of Explicit Enhancement options available.

One which can be provided at a specific place - called Enhancement

Another which can be used to replace a set of statements ± called
Enhancement Section.
Explicit Enhancement Option:

Function Group enhancement:

A Function modules can be enhanced by adding parameters to the

standard function module interface.

A These parameters must be µoptional¶ in nature, since adding a

mandatory parameter will require all calls to be changed.

A From the menu, choose µFunction module -> Enhance interface¶ to

add optional parameters to a function module.
Function Group enhancement:
Class enhancement:

The global Classes and Interfaces can be enhanced as follows:

A Adding optional parameters to existing Methods.

A Adding new Methods to the global Class / Interface.

A Adding Pre-exit, Post-exit or Overwrite-exit to an existing Method.

Choose menu option µClass -> Enhance¶ to add new methods or


Choose menu option µEdit -> Enhancement operations¶ to add or delete

the Pre/Post/Overwrite exit methods.
Class enhancement:
Kernel BADI¶s:

Old Classic BADI¶S vs Kernel BADI¶s

AThe old classic-BADI¶s are implemented purely at the ABAP

Workbench level; that is, both the definition and implementation are
realized as global classes and interfaces.

AThe new Kernel-BADI takes it to the ABAP language level. Because of

this, the new Kernel-BADI¶s are much faster compared to the old
Kernel BADI¶s:

A There are two new ABAP statements available now to support the



data bd_hdl type ref to badi_name.

GET BADI bd_hdl filters filt_1 = µVALUE¶.
CALL BADI bd_hdl->method
exporting param_1 = 10.
Kernel BADI¶s:

A Since Kernel-BADI is yet another enhancement technology under

Enhancement Framework, we need to create Enhancement Spot in
order to hold the BADI definitions.

A Semantically related enhancement options are grouped under a

µSimple Enhancement Spot¶.

A µComposite Enhancement Spot¶ contains one or more of Simple and

other Composite Enhancement Spots.
How to Find Enhancements

Enhancement Information System available in SE80 to centrally manage

all the enhancement definitions and implementations available in the
hank you!