Sunday, June 14, 2015

Enhancement Framework – Introduction

The ABAP Enhancement Implementation concept allows you to easily enhance the standard SAP delivered functionality with your desired one. The ABAP Enhancement Implementation concepts have been in SAP for quite some time now.

What is an Enhancement

An enhancement is used when you need to enhance any standard SAP delivered functionality by introducing new code. There are certain ways to achieve the enhancement:
  • Core Modification – You obtain the access key by registering the object with SAP and make the necessary changes. This is more dangerous and thus least preferable among other techniques. What makes it more dangerous is when SAP provides any OSS note, or during an upgrade, there is a chance of losing your changed functionality if you don’t perform the proper SPAU activity.
  • User Exit – You find SAP delivered Subroutines (PERFORM) which begins with USEREXIT_ in the standard SAP programs. To implement the user exit, you would need to also register the object through OSS. They are little bit safer from an upgrade point of view as they are in a separate include.
  • Customer Exit – You find SAP provided function exits with CALL CUSTOMER FUNCTION ‘001’. This would be a FM with an include. This include would not be delivered by SAP. If you need your new functionality, you need to create the include and implement your code. You would need to create Customer Enhancement Project in CMOD using the Enhancement which houses the Exit function SMOD.
  • BADI (Business Add Ins) – are based on the Object Oriented Concept. Std SAP provides you with the BADI calls. You would need to Create the BADI implementation based on the BADI definition. Then you can add your code in the implementation which is essentially a method in the class. You can implement the same BADI multiple times, if the BADI is set for multiple implementations.

New Enhancements Technique

Generally Enhancements Framework enhancements are referred as New Enhancements. They provide more flexibility compared all of its predecessors. Few advantages are:
  • Easy maintenance
  • SAP can deliver more than one business processes in the same code
  • Customer can activate the business processes
  • Upgrade Support
We would learn more about the course of various articles.

Various Types of Enhancements

There are these new enhancement concepts:
  • Explicit Enhancements – Explicit enhancements are similarly provided by SAP at various point of the code. They are provided with ENHANCEMENT-POINT and ENHANCEMENT-SECTION. We will learn more about both of them in upcoming articles, but the basic is ENHANCEMENT-POINT is the empty placeholder for the code where as ENHANCEMENT-SECTION is the placeholder with default code.
  • Implicit Enhancements – Implicit enhancements are not delivered by SAP in the code, but SAP has given flexibility to implement them at various locations
    • Beginning of the Subroutine/Method/FM/Include
    • End of the subroutine/Method/FM/Include
    • Class Enhancements – Pre/Post/Overwrite method
    • FM Enhancements – Additional Parameters
See more about the topic at zevolving.