Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

enhancement framework

Former Member
0 Likes
554

hi all, can anyone provide me with the difference an any example of implicit and explicit enhancement?

thanks in advance

javier rubio

1 REPLY 1
Read only

Former Member
0 Likes
438

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 &#8594; Enhancement Operations &#8594; 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 can‘t 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.