SAP technology / Netweaver / ABAP Development.
Author(s): Aveek Ghose
Aveek has more than 14 years experience in software analysis and design and custom development both in India and abroad. Aveek has acquired an MS in Economics, Mathematics, Statistics from Virginia Tech in USA and an MS in Information systems from George Mason University in USA. He has handled software projects U.S., Holland, UK, Switzerland, Japan and India. Aveek was a core member of the Warehouse Management system team in the University of Michigan in Ann-Arbor,Michigan,USA.
Table of Contents
Overview - What is a BADI?
Business Add-Ins are a new SAP enhancement technique based on ABAP Objects
They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery
Business Add-Ins should be considered generalized Business Transaction Events that can be used to bundle program, menu and screen enhancements into a single add-in
Each Business Add-In has:
Overview - Features of BADI
BADI vs. User Exit
BADI Definition - Attributes
BADI Definition - Interface
BADI Definition - Interface Methods
BADI Definition - Interface Methods - Parameters
BADI Definition - Exceptions
Enter Implementation name
BADI Implementation - Interface
Double click on
During implementation creation, a class for implementing the enhancement's interface is also created
Modify the method
Filter dependent BADI
Filter dependent BADI - How it works?
Filter dependent BADI - Implementation
* Implement the Add-In for each relevant filter value
Finding a BADI - Transaction VD02
* Transaction - VD02 Change Customer Master
Once inside the program
Double click on the method to enter the source code
BADI being used
Finding a BADI - Transaction LBK1
* Transaction - LBK1 Logbook
o No BADI for screen program
o BADI Definition - GUI_APPL_OBJ_OHFW for sub screen and GUI program as they are the same. * PS : Remove IF_EX from if_ex_gui_appl_obj_ohfw to get the BADI name
Steps to create an Implementation for an SAP provided BADI
BADI - some useful information
- There can be more than one implementations of the same BADI definition, and in that case only the active implementations will be executed
- You can activate or de-activate any of the implementations after creation
- Enhancement, interface, and associated classes generated all lie in the appropriate application development namespace
- Business Add-In implementations lie in the respective namespaces of the people who created them
- Changes made to the interface and changes made to the Business-Add-In definition are always incompatible
- If implementations already exist for a Business-Add-In definition, they are invalidated if you make changes to the interface. This means that their syntax is no longer correct. No statements can be given on the runtime behavior. Avoid making changes to the interface or the Business-Add-In definition after the transport has taken place.
- If changes to the interface are inevitable, navigate to the Class Builder for all implementing classes and clean up the method includes of these classes (Utilities > Clean up > Method includes) General Naming Conventions | Position | Description | Values | Meaning |
- A single BADI can have multiple implementations using filters.
- Eg. GUI_APPL_OBJ_OHFW Badi is implemented at different places in LBK1 Transaction using filters
- In most cases the sub screen & screen program are the same that's why we can't see the difference. Even GUI Program is the same.
Please include at least three references to SDN documents or web pages.