Enhancement Framework
The Enhancement Framework enables you to add functionality to standard SAP software without actually changing the original repository objects, and to organize these enhancements as effectively as possible.
With this new technology you can enhance global classes, function modules, Web Dynpro ABAP components, and all source code units using implicit enhancement options provided by the system. An application developer can also define additional explicit enhancement options for source code plug-ins and new kernel-based BAdIs, which are also integrated in this new framework.
The previous concepts include two different methods for adapting SAP software that go beyond the scope of customization:
● Modifications – changes to development objects delivered by SAP with or without the Modification Assistant
● Enhancements – inserting user developments into SAP development objects at predefined positions using customer exits, appends, includes, and classical Business Add-Ins (BAdIs).
The new Enhancement Framework is intended to integrate the existing enhancement and modification concepts, to replace and improve some of them, and to add some new ones to address recent developments like Web Dynpro, for example.
To be able to
enhance repository objects, the software component they belong to should have
the property Modifiable or Not modifiable; enhanceable only. For more information about
setting this property, see
Setting the System
Change Option.
The main tool for performing enhancements is the Enhancement Builder, which is integrated in the ABAP Workbench.
The enhancements
can be switched using the
Switch Framework.
An enhancement takes effect when the package in which the above enhancement
components are defined is assigned to a switch of the Switch Framework, and
this switch is not deactivated.
In contrast to modifications, with the new technology it becomes possible to have enhancements on different development levels, for example:
● core development
● application development
● add-on development
● customer development


It is possible to create multiple enhancement implementations on different layers or to replace an enhancement implementation, but enhancements cannot be nested.
See also: