Enhancement Framework – Implicit Enhancement Options

By | April 9, 2014 | Enhancement Implementation | 42,555 | 2

Implicit Enhancement points exist at various places in the ABAP programs. Unlike the Explicit enhancements, these points are not defined in the programs.

Very Powerful

Since implicit enhancement options are integrated and by default available makes it very powerful option when you want to enhance any functionality in ABAP Enhancement Framework. To implement the Explicit enhancement, it has to be provided in the program as a POINT or a SECTION. Since Implicit is available at many places, makes it widely useable.

Lets walk through one scenario – You have a subroutine to populate the specific field on the document. This subroutine is providing you a XYZ value. That value is valid for most of the business units. But for one specific unit, you want to have ABC instead of XYZ. To achieve this, you can implement the Implicit Enhancement option available at the end of the subroutine, provided there is no explicit point, or customer exit, or BADI.

To see this flexibility – compare it with the same scenario where you don’t have Implicit options. You register the object (remember, you don’t have any exits in the subroutine), implement the code, make sure that code is there always after a support pack or OSS note or full system upgrade. With the flexibility of implicit options, you don’t need to worry about upgrade. The implementation would be there after any upgrade or support pack.

Available at

Implicit enhancement options are available at various place:

  • At end of programs, subroutine pools, Function Groups, Few Include programs
  • At end of Structure (TYPE) Definition
  • At beginning and at end of Subroutine, Method, Function Module
  • At beginning and at end of Enhancement Implementation
  • At end of list of parameters for FM, Method
  • At end of each section (PUBLIC, PROTECTED, PRIVATE) of the class
  • At end of Interface definition

E.g. For a Subroutine F_GET_DATA, the implicit enhancements are available just after the FORM F_GET_DATA (at beginning) and just before the ENDFORM (at end).

Read more Implicit Enhancement Options in ABAP Source Codes at SAP help.

Display Available Implicit options

To display the implicit options, Select Menu options Edit > Enhancement Operations > Show Implicit Enhancement Options

Show_Implicit_Options

Once you use the option “show the implementations”, system would show all the possible places where you can implement the implicit enhancement.

Implement the Implicit option

Once you able to see the Enhancement Options, you can create the implementation for that.

To be able to create implementation, put cursor on the Enhancement Option (line showing with “””””””) and select menu option Edit > Enhancement Operation > Create Implementation. If you don’t see the implicit options, you need to use the Shoe implicit Options function.

Once you reach to this point, the process for creating implementation is similar to creating implementation for the explicit enhancement point.

Implement_Implicit_option

Declaration vs Code Popup

If you are implementing the enhancement point which is within the Subroutine or FM or Method, system would bring you this popup.

Implicit_Implementation_Declaration_Code_popup

Here is both of the options mean:

  • Declaration – When you choose this type, the implementation would be created and treated as Static implementation. Means, it would be always available in all the clients.
  • Code– When you choose this option, the implementation would be Dynamic implementation. It would be only called based on switch’s status if the switch is assigned.

In the newer version of SAP, I believe ECC 6 EP 6 onwards, there is this help available on the popup. The help says:
An enhancement implementation for an implicit enhancement option can be bound into the source code by the Enhancement Framework in two ways:
– As an unconditional call, for declarations and definitions: In such “static” enhancements, you can add and replace data declarations, for example. Calling the
enhancements takes place independently of the client. The enhancement is visible in all clients of the
system.
– As a conditional call, for source code: The enhancements implemented here are called “dynamically” – that is, depending on the current
switch settings.
Notes:
– Definitions of subroutines, methods, and local classes cannot be implemented in “dynamic”
enhancement implementations, but only in “static” ones
– Data declarations should be implemented in “static” enhancement implementations.
– At runtime, “dynamic” calls do not ensure the same performance as “static” calls.

Next Article

Enhancement Framework to extend Class or Interface

Table of Content – Enhancement Framework

Like It? Share!!

Don't miss an Update

Get notified of the new post, right into your inbox

Naimesh Patel{274 articles}

I'm SAP ABAP Consultant for more than a decade. I like to experiment with ABAP especially OO. I have been SDN Top Contributor.
Follow :

Explore all of his 274 articles.

Load comments

2 Comments

  • Steve Oldner

    Very nice. I’m sending this to my abap-co-workers.

    Thanks and great work, as always!

  • Tommas

    Thanks! Now I have less confusion in enhancements 🙂

Comments on this Post are now closed. If you have something important to share, you can always contact me.

You seem to be new here. Subscribe to stay connected.