!--a11y-->
Enhancement Framework 
The new enhancement concept of the ABAP Workbench (Enhancement Framework) enables the integration of different concepts for modifying and enhancing development objects. The enhancement concept is supported by the Enhancement Builder tool and ABAP language elements.
In the long-term,
the new Enhancement Framework is to replace or incorporate the existing
enhancement and modification concepts. These are described under
Changing the SAP
Standard (BC).
The previous concepts were separated into modifications – that is, changes to delivered development objects, and enhancements – that is, inserting user developments at points predefined by SAP.
·
Modifications were
carried out using the
Modification
Assistant and supported in system upgrades.
·
Before Release 4.6,
enhancements were only possible via
Customer Exits. As
of Release 4.6, function module exits (customer exits for source code
enhancements) were replaced with
Business
Add-Ins.
Problematic aspects of the previous concepts are:
· There is no real upgrade support for modifications and enhancements made in different systems of a transport route – for example, by SAP, to partner add-ons, or to customer developments.
· It is difficult to trace developments made in different parallel systems back to one system.
· In the case of systems in which large amounts of user developments and modifications were made, retracing and testing these developments after an upgrade is a very time-consuming process.
The aim of the new enhancement concept as of Release 7.0 of the SAP NetWeaver Application Server ABAP (SAP NetWeaver 2004s) is to unify all possible ways of modifying or enhancing SAP products (more precisely, Repository objects of the SAP NetWeaver Application Server ABAP), which go beyond the scope of Customizing. The corresponding tool is the Enhancement Builder, which is integrated in the ABAP Workbench.
In the context of the new enhancement concept, the following can be handled as enhancements:
· Modifying a Repository object
· Replacing a Repository object with an identically-named object
· Enhancing a Repository object at a predefined position
· Using a foreign object
The Enhancement Framework knows all information about an enhancement that is required, for example, for an upgrade or for the ABAP runtime environment.
The enhancements of
the enhancement concept can be switched using the
Switch Framework.
This means that 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 constrast to modifications, with enhancements 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.
For the current release, the enhancement concept only incorporates enhancements of Repository objects at predefined positions called enhancement options.
See also: