Before answering this question lets look at what is meant by Enhancements and what does they do.
Enhancements enables customer/clients to add custom business functionality to SAP standard software with out changing the SAP standard functionality or standard repository objects. By doing this we are not at all disturbing the SAP standard code( which is supposed to be unchanged).
What different types of Enhancement Concepts we have till now < Netweaver 7.0?
The concept of changing SAP standard started with User-Exits(modification), Customer-Exists, Appends, Includes ,Business Transaction Events and classical BAdI’s. All these available for us to add the custom functionality to SAP standard software.
What is Enhancement Framework?
The new Enhancement Framework (or) New Enhancements was introduced to bring all existing enhancements techniques and modification concepts under one umbrella and some of the concepts among these are improved and some are replaced and some new concepts like Kernel BAdI’s are added.
Below picture will explain you the brief history of enhancement and modification concepts in SAP.
Following are the different new enhancement techniques available under new enhancement framework.
- Data Dictionary Enhancements
- Implicit Enhancement Options
- Explicit Enhancement Options
- Function Group Enhancements
- Class Enhancements
- Kernel BAdI’s
Data Dictionary Enhancements
Data Dictionary enhancements are also newly added in Enhancement framework. We have two types here
Implicit Enhancement Options
Implicit enhancement option is source code enhancement concept.These are incorporated directly in ABAP source code of SAP standard software.
Where we can we find the implicit enhancement options ?
Implicit enhancement options are available at these places.Implicit enhancements are provided at specific code places by SAP.
- At the end of type declaration, before “END OF … ” to add additional fields.
- At the end of Reports, Function pool, Module pool and after the last statement.
- At the start and end of all Function Modules.
- At the start and end of all Subroutines.
- At the end of PUBLIC, PROTECTED and PRIVATE sections of class.
Explicit Enhancement Options
Explicit enhancement options are also source code enhancements and they are also available at ABAP source code level. We have two types of Explicit Enhancement options
- Enhancement Point
- Enhancement Section
An Explicit Enhancement Point is an option provided by SAP to enhance the SAP source code without modifying it.It is implemented by using syntax “ENHANCEMENT-POINT“.
An Explicit Enhancement Section is also an option provided by SAP to replace the SAP source code without modifying it.It is implemented by using syntax “ENHANCEMENT-SECTION” and “END-ENHANCEMENT-SECTION“. The replaced code will exists in between these statements.Both these options are managed using Enhancement Spots.
Function Group Enhancements
This is new enhancement concept introduced in Enhancement framework to add only optional parameters in Importing, Exporting, Changing and Tables to the interface of all functional modules in SAP standard software. There are some restrictions to some functional modules and you can not add Exceptions to the interface.Be cautions while enhancing the interface of the functional modules.
This is new enhancement concept introduced in Enhancement framework to
- Add only optional parameters in Importing, Exporting, Changing and Tables to the standard class method interface
- Define additional attributes and methods in PUBLIC, PROTECTED and PRIVATE sections of the standard class
- Define Pre and Post method for an SAP standard class method. ( Pre method will execute before standard method and Post method will execute after standard method )
All the above enhancement techniques are newly delivered with Enhancement Framework but Kernel BAdI is an improvement to the old classical BAdI technique.The new BAdI technology will work same as the Classical BAdI. Kernel BAdI’s are also implemented and managed using Enhancement Spots.
In our next tutorials we will pick each and every enhancement technique and understand them with an examples.Please comment if you like this post.