‎2007 Nov 20 9:41 AM
hi all, can anyone provide me with the difference an any example of implicit and explicit enhancement?
thanks in advance
javier rubio
‎2007 Nov 20 9:55 AM
hI
<b>Enhancement Framework</b>
The new enhancement concept of the ABAP Workbench 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.
The objective of the Enhancement Framework is to provide a technology to create modification-free enhancements and to unify all possible ways of modifying or enhancing Repository objects.
<b>Multilayer Support</b>- In contrast to modifications with enhancements it becomes possible to have
enhancements on different development levels, e.g.
- 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.
<b>Enhancement Spots</b>
Enhancement Spots can only be of type source code Enhancement or BAdI.
Enhancement Spots manage explicit Enhancement Options
While implicit enhancement options always exist and do not require any special management, explicit enhancement options created in an initial system must be made known to developers in target systems via Enhancement Spots.
<b>Enhancement Implementations</b>
Enhancement implementations manage their enhancements.
Enhancements made by developers in follow-on systems are managed as Enhancement Implementations. This applies to all enhancement options, both explicit and implicit.
<b>Composite Enhancement Spots</b>
Composite Enhancement Spots are used to organize Enhancements Spots in a tree structure.
Container Objects
Can contain
Other Composite Enhancement Spots
[Simple] Enhancement Spots
Container Objects
Can contain Enhancement Elements
Composite Enhancement Implementations are used to organize Enhancement Implementations in a tree structure.
Container Objects
Can contain
Other Composite Enhancement Implementations
[Simple] Enhancement Implementations
Can contain Enhancement Implementation Elements
<b>Features of explicit & Implicit enhancement options </b>
Features of explicit enhancement options
More stable, pre-defined
Few changes in definition to expect
Only at valid source code locations
Features of implicit enhancement options
Enhancement of arbitrary objects
No enhancement spots necessary
<u><b>Difference: Explicit and Implicit Option</b></u>
Explicit Enhancement Options
In ABAP programs, developers can select either a position or a program section as an explicit enhancement option. In follow-up systems (partners and customers) can implement source code plugins at such a position or they replace the selected section.
Implicit Enhancement Options
Implicit enhancement options always exist.
<b>Explicit Enhancement Options</b>
To mark a position in an ABAP program as an explicit enhancement option, the following ABAP statement is used:
ENHANCEMENT-POINT enh_id SPOTS spot1 spot2 ...
To mark a section in an ABAP program as an explicit enhancement option, the following ABAP statement is used:
ENHANCEMENT-SECTION enh_id SPOTS spot1 spot2 ...
END-ENHANCEMENT-SECTION.
Currently it is only possible to assign an enhancement point/section to one Enhancement spot.
<b>Implicit Enhancement Options</b>
Implicit enhancement options can be displayed in the ABAP Editor by following the path Edit → Enhancement Operations → Show Implicit Enhancement Options and then implemented using source code enhancements.
Implicit enhancement options always exist and no enhancement spot is assigned to them.
In ABAP programs, implicit enhancement options are predefined at the following places:
End of an include (with exceptions, e.g. not at the end of a method include)
End of the PUBLIC-, PROTECTED-, PRIVATE-SECTION of a local class
End of the implementation part of a class (before the ENDCLASS, which belongs to CLASS IMPLEMENTATION)
End of a interface definition (before the ENDINTERFACE)
End of a structure definition (before TYPES END OF, DATA END OF, CONSTANTS END OF and STATICS END OF)
Begin and End of a procedure (FORM, FUNCTION, METHOD), that is after command FORM, FUNCTION und METHOD and before statement ENDFORM, ENDFUNCTION and ENDMETHOD.
End of the CHANGING-, IMPORTING-, EXPORTING-parameter list of a method. These enhancement options are located in the middle of a statement.
<b>Enhancement Type</b>
ENHANCEMENT-POINT <name> SPOTS <spot1> [<spot2>] ..[STATIC]
Static: Additional data declaration
Dynamic: Additional source code
ENHANCEMENT-SECTION <name> SPOTS <spot1> [<spot2>] ..[STATIC]
Static: Replace an existing data declaration
Dynamic: Replace source code
Data declarations are always static, even if they are inside an implementation of a dynamic enhancement point.
Form routines, methods and local classes cant be part of dynamic enhancement points/sections. Therefore it is necessary to place them into static enhancement points/sections.
Static enhancement points/sections are marked with the addition STATIC in source code. Dynamic enhancement points/sections do not contain an addition.