Skip to Content
author's profile photo Former Member
Former Member

enhancement framework

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

thanks in advance

javier rubio

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Nov 20, 2007 at 09: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 &#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.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.