Professional Documents
Culture Documents
The basic idea of Enhancement Framework is to make modification-free enhancements of development objects such as
programs, function modules, global classes, and Web Dynpro components.
All these technologies and the new kernel-based BAdI are now integrated in one Framework that has the following features:
o Enhancements of existing development objects on different levels - for example, in an industry solution, in the IT
department of the customer, and finally in a customer's company.
o Better upgrade support
o Switching of enhancements with the Switch Framework
o Support for grouping enhancements and appropriate tool support for documentation.
Enhancement Options For Modification-Free Enhancements
The basic concept is the enhancement option. Think of an enhancement option as a hook where you can attach the
enhancement implementation elements to. If an SAP system provides these hooks, you can add an implementation element
there at later stages of development in other system, without modifying the original SAP code.
This is possible because enhancement implementation elements are in a package of their own and transport objects in their
own right. This way, you avoid all the trouble with modifications that stems from the fact that modifications are, from a
technical point of view, part of the compilation unit they modify.
o The developer of the corresponding development object must insert the options of one kind into the coding so that
enhancements can be done there at a later time. These preconceived enhancement possibilities are called explicit
enhancement options.
o You can perform enhancements on implicit enhancement options without the developer of the appropriate compilation unit
having to do anything. Enhancement options are always available in programs, global classes, function modules, and
includes.
In other words, the implicit enhancement options are for free, provided by the framework, while the explicit ones need to
be inserted explicitly, as the name indicates.
o Enhancement points allow you to insert source code plug-ins. These are additional code lines that, if they exist, are
executed there additionally. Explicit enhancement options of the type Enhancement Section behave in the same way - the
only difference being that the source code plug-in replaces the section in the original code.
o Business Add-Ins (BAdIs) are "hooks" for object plug-ins. A BAdI definition comprises an interface with methods. BAdIs are
enhanced by classes that implement the BAdI interface. If you instantiate a BAdI and then call its methods, you can, among
other things, specify which method implementations are to be carried out on the basis of filter values. In other words, a
BAdI method call is a dynamic method call with a specified interface, for which it is not determined until runtime which
method implementations are to take place.
Implicit Enhancement Technologies
Implicit enhancement options are fixed points in compilation units - that is, points that remain intact even if the code is
changed:
o You can always insert source code plug-ins before the first and after the last line of includes, methods, reports, and function
modules.
o You can always add further optional parameters to function modules.
o For global classes, there are different permanent, implicit options for enhancements: You can insert additional attributes or
methods, and you can add optional parameters to existing methods.
Container and their Structure in the Enhancement Framework
The Enhancement Framework enforces some structure on both the enhancement options and the enhancement
implementation elements. An enhancement option has to be part of an enhancement spot, while an enhancement
implementation element has to be part of an (simple) enhancement implementation. Enhancement spots and
implementations serve as containers that can themselves be part of composite enhancement spots and composite
enhancement implementations respectively. Those composite containers can be nested, and, this way, developers can build
a complex structure that mirrors enhancement projects, organizational aspects, topic structure of the content etc.