The Enhancement Framework enables you to add functionality to standard SAP software without actually changing the original repository objects and to organize these enhancements separately from the enhanced objects.
The basic idea of the Enhancement Framework is to make modification-free enhancements of development objects such as programs, function modules, global classes, and Web Dynpro components. It is the new state-of-the-art technology that SAP recommends to enhance and change SAP programs. These technologies and the new kernel-based BAdIs are now integrated in one framework that has the following features:
An enhancement project needs even more planning than a normal development project because it combines the customer code with the code of the underlying application. Enhancements are changes at a very low technical level and should be performed very carefully so that they do not violate the logic of the program they enhance. It is highly recommended to set up a process that defines who is allowed to design and implement enhancements.
Up to now, customers could use the following classic technologies to adapt the software when the options for customizing were insufficient:
The new Enhancement Framework is intended to integrate existing enhancement and modification concepts and addresses recent developments such as Web Dynpro. The classic technology for appends and includes cooperates perfectly with the Enhancement Framework but is not yet integrated in it. If you want to be able to enhance all layers of an application, the classic append technology is still necessary.
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.
To have more control over possible enhancements, you can use Enhancement Append Packages. The concept of enhancement append packages is designed for the implementation of enhancements such as source code enhancements and ABAP Dictionary enhancements.
Enhancement implementations are located in a separate append package that is assigned to the original package so that the package treats the content as part of the original package.