enhancement framework
DESCRIPTION
Enhancement FrameworkTRANSCRIPT
Enhancement Framework
Enh
ance
men
t Fra
mew
ork.
ppt
Agenda
Introduction
Components
Enhancement Options•Explicit Enhancement Option•Implicit Enhancement Option
Enhancement Spots
Enhancement Implementations
Introduction to Enhancement Framework
- 4 -- 4 - Enh
ance
men
t Fra
mew
ork.
ppt
Current options available for Enhancements
User-Exits: The very first mechanisms provided by SAP to execute custom code in between the standard SAP control flow. This is implemented as subroutine call (PERFORM xxx). A classical example for User-Exit is MV45AFZZ include in order processing module of SAP R/3.
Customer Exits: It is implemented using Function Modules and so has a well defined parameter interface. Also since the custom coding done as part of these customer-exits is located away from the original SAP code, the maintenance is easier than user-exits. (Before 4.6, only through customer-exits)
BADI’s: It exist in pre NW04s releases are now called old classic-BADI’s. This was the first object-oriented way to enhance the ABAP system. This, to a certain extent, allows multiple implementations with limited filter support. The classic-BADI’s are implemented using ABAP Objects.
- 5 -- 5 - Enh
ance
men
t Fra
mew
ork.
ppt
Evolutions of SAP Enhancement Technology
- 6 -- 6 - Enh
ance
men
t Fra
mew
ork.
ppt
Drawbacks of previous Enhancement Techniques
No support for multiple users or projects
No support for parallel developments
Will appear much more often in adjustment tools
Higher adjustment effort (during upgrade & SP import)
- 7 -- 7 - Enh
ance
men
t Fra
mew
ork.
ppt
What is Enhancement Framework
New enhancement concept in SAP. Released from SAP NetWeaver 7.0
Replace or incorporate the existing enhancement and modification concepts (solve the issues with the previous concepts).
Enables the integration of different concepts for modifying and enhancing development objects.
The enhancements of the enhancement concept can be switched on/off using the Switch Framework.
- 8 -- 8 - Enh
ance
men
t Fra
mew
ork.
ppt
Different components of the Enhancement Framework
The enhancement framework consists of three higher level components :
Enhancement Option - Are positions in Repository objects where enhancements can be made. These options are either explicitly defined (by the developer) or exist implicitly.
Enhancement Spots - The enhancement spots are used to manage explicit enhancement options. Enhancement spots carry information about the positions at which enhancement options were created.
Enhancement Implementation - The enhancement implementations manage the enhancements of the enhancement options, both explicitly and implicitly.
- 9 -- 9 - Enh
ance
men
t Fra
mew
ork.
ppt
Enhancement Options
- 10 -- 10 - Enh
ance
men
t Fra
mew
ork.
ppt
Types of Enhancement Options
Enhancement options can be classified into two categories :
Explicit Enhancement Option Implicit Enhancement Option
Are defined explicitly by the developer.
Managed using enhancement spots
Enhanced using enhancement implementations
Are of two types :– Source code plug-in
– Kernel BADI (or new BADI)
Always exist and do not have to specified by developer
No enhancement spots are needed
Enhanced using Enhancement Implementations
Are of three types :– Specific options in programs
– Parameter interfaces of function modules
– Methods of classes
- 11 -- 11 - Enh
ance
men
t Fra
mew
ork.
ppt
Enhancement Spots
- 12 -- 12 - Enh
ance
men
t Fra
mew
ork.
ppt
What are Enhancement Spots
Enhancement spots are created to manage explicit enhancement options
An explicit enhancement option is always referenced using spot name and option name
An enhancement spot can contain multiple enhancement options
An enhancement option can be assigned to multiple enhancement spots.
A composite enhancement spot can hold multiple simple enhancement spots.
Spots are always provided by the application developer
No spots are required for implicit enhancement options
- 13 -- 13 - Enh
ance
men
t Fra
mew
ork.
ppt
Enhancement Implementation
- 14 -- 14 - Enh
ance
men
t Fra
mew
ork.
ppt
What is an Enhancement Implementation
Used to manage enhancements
Enhancement Implementations are created by the customer
An enhancement can/must be a part of only one enhancement implementation
An enhancement implementation can contain multiple enhancements
An individual enhancement inside an implementation is known as an enhancement implementation element.
An enhancement implementation element for a explicit enhancement option must be associated with an enhancement spot.
A composite enhancement option can contain multiple simple enhancement options.
- 15 -- 15 - Enh
ance
men
t Fra
mew
ork.
ppt
Representation of Spot and Implementation
- 16 -- 16 - Enh
ance
men
t Fra
mew
ork.
ppt
Explicit Options
- 17 -- 17 - Enh
ance
men
t Fra
mew
ork.
ppt
Source Code Plug-in
The following enhancement options are available in the source code:
Enhancement - Point • Can be static (data declaration) or dynamic (coding).• Used as a place holder to place additional coding.• Can belong to multiple enhancement spots• Multiple active implementations possible and will be executed with no
guarantee in the order of execution.
Enhancement – Section• Can be static or dynamic• Used to modify / replace a certain section of code. Only one is active at a
time.• Can belong to multiple enhancement spots.• Implementation gets executed and the original code does not gets
executed.
- 18 -- 18 - Enh
ance
men
t Fra
mew
ork.
ppt
Source Code Plug - in – Editor Modes
Creating enhancement options – Use the Change mode for creating enhancement points or sections– Use the button to switch between change display modes
Implementing enhancement options – Use the Enhancement mode to create implementations– Use the button to get into the enhancement mode.
– Use the button to leave the enhancement mode.
- 19 -- 19 - Enh
ance
men
t Fra
mew
ork.
ppt
Demos for Explicit Enhancement Options
Demo for Enhancement Point
Demo for Enhancement Section:
•Before Implementation
•After Implementation
- 20 -- 20 - Enh
ance
men
t Fra
mew
ork.
ppt
BADI Enhancement Option
What are BADIs ?– Business Add – Ins
– Is an anticipated point of exception – these points act like sockets and exist in the original coding
– has well defined interface in contrast to source code plug-ins and is more stable to changes in the original code
Kernel BADIs – New Features– Can be switched by switch framework
– Integrated directly in the ABAP language runtime
– Improved filter support (non-character filter types)
– Enable Reusable Implementations – Stateful BADI
– Control lifetime of Implementations – BADI-Context
- 21 -- 21 - Enh
ance
men
t Fra
mew
ork.
ppt
BADI Enhancement Option - Comparison
The new BADI has several advantages over the classic BADIs
Classic BADI New BADI
- 22 -- 22 - Enh
ance
men
t Fra
mew
ork.
ppt
Demo for Kernel BADI
•Creation of Enhancement Spot fro BADI
•Creation of Enhancement Implementation for BADI
•Call of the BADI from the program
- 23 -- 23 - Enh
ance
men
t Fra
mew
ork.
ppt
Implicit Options
- 24 -- 24 - Enh
ance
men
t Fra
mew
ork.
ppt
Source code (Specified points) options :
These are enhancement options at predefined points in a program :
At the end of an Include
At the end of a private, public or a static section of a class
At the end of an implementation for a class
At the end of an interface definition
At the end of structure definitions
At the start of a procedure (Subroutine, Method, Function)
At the end of a procedure
At the end of parameter set of a method (Changing, Importing, Exporting)
Demo for Implicit Enhancement of Subroutine
Implicit enhancement options always exist and no enhancement spot is assigned to them.
- 25 -- 25 - Enh
ance
men
t Fra
mew
ork.
ppt
Parameter Enhancement Option
The parameter enhancement option provides an option to add new parameters to a function module interface
The parameters are always optional.
The added parameters can be utilized by making other enhancement implementations in the source code.
Demo for Parameter enhancement option for Function Module
- 26 -- 26 - Enh
ance
men
t Fra
mew
ork.
ppt
Class Enhancement Option
Using the class enhancement options you can :
Add new methods to a class / interface
Add new attributes (Public / Private / Protected)
Add pre or post methods to an existing method
Demo for Class Enhancement Option
Copyright © 2008 Deloitte Development LLC. All rights reserved.