Preface – This post is part of the Object Oriented ABAP series.
Table of Contents
SAP as a solution for any enterprise workflow is one of the best product available in the market. It almost covers all the possible scenarios of any business. Still, based on the requirement of the customer, a developer has to enhance the existing code. For that the developer needs to add their own code within the SAP source code. Every year SAP rolls out its new version of source codes in the form of updates. It means whatever programs or reports you are using, it gets updated yearly. In this scenario, the developer may lose their changes. To fix this issue, SAP provides some enhancement techniques which can be used to enhance the code in such a way that it is preserved for every update. One such type of enhancement is Business Add-Ins. In this article we will explore more about the concept of SAP BAdI in detail.
What is a SAP BADI
SAP BADI is an object oriented enhancement option where the enhancement is made with the help of reusable objects and added within the source code with the help of predefined hooks.
How to use SAP BADI
A BAdI is created using Enhancement spot under transaction SE80. The name of a BADI should always start with BADI_ for standard BADIs and ZBADI_ for custom BADIs.
A BAdI can be re-implemented using two elements i.e. GET BADI and CALL BADI.
Types of BAdIs
SAP provides given three ways of BAdIs Implementation:
- Single-Use BAdI: This type of BAdIs have no filters and are called once.
- Multiple-Use BAdI: This type of BAdIs allow multiple implementation
- Filter BAdI: A filter in BAdI helps a developer to select among multiple BAdIs with the help of filters.
Advantages of SAP BAdIs
Following are the scenarios where a BAdI implementation is useful:
- A customer wants to enhance his product, but modification in source code is not desired. This is easily achieved with the help of BAdIs.
- Different country and industry have different business cases for same product. This is easily achieved using multiple BAdI implementation.
- A customer can do add their codes after delivery. The customer with the help of BAdIs can implement their own codes in the BAdIs objects later.