When I generally ask the question, I found a lot of SAP techie answer it like :
BAdi is a enhancement mechanism provided by SAP which follows the object oriented technique.
Then if I ask is it a Interface or Class ?
Answer from many of the SAP techie : “It’s a Class”.
But the correct answer is it’s a Interface and we do implement the Interface~method inside custom Class while we go for BAdi implementation.
This is how we can leverage the multiple implementation of BAdi provided by SAP.
And some other advantages are as below:
- We can have add filter while calling the BAdi implementation.
- We can switch on/off any BAdi implementation at any point of time.
You can go through the below points as well:
• BAdi contains two sections
- BAdi definition
- BAdi implementation
• Each BAdi definition contains one interface and one adapter class
• Interface is the collection of methods which are defined not implemented
• This methods are implementing through BAdi implementation
• The adopter class takes care of version change management that is wherever the version is changed those changes will be taking care by adopter class
• The transaction code for BAdi definition is SE18
• BAdi implementation is nothing but to implement the required method which is defined in the BADI definition.
• The transaction code for BAdi implementation is SE19