Preface – This post is part of the Differences in ABAP for Interviews series.
Table of Contents
Every year SAP provides a new update to its platform. All the SAP standard programs are designed in such a way that it meets almost all the requirements of a user of a particular sector. But sometimes, there comes a requirement that user wants something else that SAP program is providing. In this case, the simplest way is to modify the source code to meet the requirement. But the disadvantage in doing so is that the modification is erased as soon there is an update. To fix this issue, SAP introduced something called Enhancement framework. In this article we will discuss the difference between Enhancements and BADI.
Enhancements in SAP ABAP
As discussed earlier, SAP introduced Enhancement framework to enhance a particular piece of source code. To keep these process easy and flexible, SAP provides certain area where these enhancement codes can be added. These are called “hooks”. The best part of these enhancements is that they behave like the actual code and at the same time, they are transported separately among the different landscapes.
BADI in SAP ABAP
Earlier, we have seen that we were able to add code into the source code and transfer the same to different landscapes. SAP later created a new type of enhancement framework which uses Object Oriented concepts. This new Enhancement technique, thus, was created in form of class and objects and was available for reuse.
BADI stands for Business Add-Ins. They are object oriented based enhancement techniques that can be reused.
Now let us discuss the difference between Enhancements and BADI.
Difference between Enhancements and BADI
|A standard Enhancement technique can be used only once.||A BADI can be used any number of times.|
|They are not object oriented.||They are purely object oriented.|
|They are easy to implement.||It is the most sophisticated enhancement.|
|These are mainly changed only by developer.||The BADI codes are separated from the source code, hence customer too can do further implementations using BADI.|