SAP BAdi Transactions
Business Add-Ins – Find, display and implement BAdIs
What are BAdIs? – BAdis offer SAP developers the opportunity to extend ABAP programs without modification. They are part of the SAP enhancement concept. It is completely independent of whether they are SAP standard programs or add-ons from a partner. BAdis are also known as explicit extension options. In the following article, we will briefly introduce you to how to find and implement these extensions.
What are BAdIs?
SAP BAdIs (Business Add-Ins) are an extension option in SAP systems. BAdIs provide a way to extend the standard code of SAP programs without changing the original code. They allow developers to implement additional business logic in SAP applications to make specific requirements or customizations.
BAdIs are points in the program code where customer-specific code can be inserted. These points are referred to as “engagement points.” When a BAdI mount point is reached, the developer can write additional code to extend or override the default functionality.
A major advantage of BAdIs is that they provide a clean separation between SAP’s standard code and customer-specific code. This makes it easier to upgrade SAP systems, as the customer-specific code in the BAdIs remains untouched and only the standard code needs to be updated.
BAdIs can be used in various SAP applications, such as in the modules SAP ERP, SAP CRM, SAP SCM and SAP BW. They offer a flexible extensibility for companies to adapt their SAP systems to their specific business needs. It is completely independent of whether they are SAP standard programs or add-ons from a partner. BAdis are also known as explicit extension options. In the following article, we will briefly introduce you to how to find and implement these extensions.
How do you search for classic BAdis?
SE84, SE81 or program-related
You have several options for searching for classic BAdis:
- Free search via transaction SE84 – List of freely selected BAdis
- Application-related search via transaction SE81 – Listing of application-related badis
- Program-related search: Search for “GET_INSTANCE” in the program, the function module or in the method. Double-click the reference variable to navigate to the variable definition. You can also set a breakpoint in the method GET_INSTANCE and call the program. Then double-click on the BAdI interface to navigate to the interface. Start to CL_EX_ the where-used list in classes. Transaction SE18 usually provides documentation for the respective BAdi, which you should read before starting the implementation.
How do you implement the classic BAdl program exits?
Steps for creating a BAdl implementation (BAdl usage)
To use the respective BAdi for your application, proceed as follows. First, use transaction SE18 to display the definition of the BAdi. You use transaction SE18 or transaction SE19 to choose Create Implementation. Specify a name for the BAdi implementation. For naming, we recommend simply putting a Z in front of the Badi name for the Badi implementation. For the implementation class, use ZCL+Badi names. By double-clicking on the methods, you can now implement the desired methods. You then activate both the method(s) of the implementation class and the BAdi implementation. ready!
How are you looking for new BAdis?
Basically, the new BAdi technique works very similarly to the classic BAdi technique. However, this technology is much more performant, as no more adapter classes are created here.
The search for a suitable BAdi (Enhancement Spot) is analogous to the search for classic BAdis. However, in the program-related search, we are not looking for GET_INSTANCE but for GET_BADI.
How do you implement the new BAdl Program Exits – Enhancement Spot?
There are also various ways to do this. Display the desired enhancement spot via transaction SE18. Use the Implement Extension menu (F6) to create the implementation. Give a name for the extension implementation and the BAdi implementation. Maintain the attributes for the BAdi implementation. In the navigation pane, click Implementing Class. Double-click to implement the desired methods. You then enable the method(s) and extension implementation. Ready.
Possibility via class CL_EXITHANDLER
When Badis is called, the class is CL_EXITHANDLER. This class again contains the method GET_INSTANCE (see above). With a breakpoint within the method, you can examine these BAdi in more detail. To do this, use transaction SE80 or transaction SE24. The variable EXIT_NAME contains the name of the current BAdIs.
Do you have questions about SAP BAdis?
We would be happy to advise you in a personal conversation.