To accommodate user requirements not available / too specific to be included in the SAP standard Program
•
Based on ABAP Objects
•
Guaranteed upward compatibility of all Business Add-In interfaces –
–
It has Interfaces & Methods
Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces
BADI vs. User Exit
•
In User Exits, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object.
•
The users of Business Add-Ins can customize the logic they need or use a standard logic if one is available. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery.
BAdi & Customer-Exit •
Though different enhancement technique, BAdi has following distinct features –
Uses Object oriented approach
–
Two parts - Definition and its Implementation - definition can either be SAP provided or user may also create it
–
no longer assumes a two-system infrastructure (SAP and customers)
–
allows multiple levels of software development (by SAP, partners, and customers, and as country versions, industry solutions, and the like)
BAdi – where to find
•
Look for BAdi in IMG and in component hierarchy (using transaction SE18)
•
Create own implementation of the add-in (complete coding for Methods) and activate
•
Enhancement's active components are called at runtime.
BAdi Definition (SE18)
•
To include Business Add-Ins in the program –
Define an interface for the enhancement in the SAP menu under Tools-> ABAP Workbench -> Utilities -> Business Add-Ins -> Definition (transaction SE18)
–
Call the interface at the appropriate point in application program
–
Customers can then select the add-in and implement it according to their needs
BAdi Implementation (SE19)
•
ABAP Workbench ->Utilities -> Business Add-Ins -> Implementation (transaction SE19)
•
Find the suitable Business Add-Ins present in system (Use IMG or Component hierarchy)
•
Use Add-Ins Documentation to understand functionality & to decide
•
Implement the Add-Ins
•
–
a class is created with the same interface
–
Finalize coding for the method
Implementations are discrete transport objects and lie within the namespace of the person or organization implementing them
Filter dependent BADI If enhancement needs to be different based on some parameter (e.g. country-specific or companycode specific), separate implementation of the same Add -In can be created and activated. At run time, the specific implementation will be executed Possible through filter dependent BADI.
What qualifies as a filter?
A Data element Underlying domain may contain a maximum of 30 characters and must be of Character type The data element must Either have a search help with a search help parameter of the same type as the data element and this parameter must serve as both the import and export parameter or the element's domain must have fixed domain values or a value table containing a column with the same type as the data element Before implementing filter objects to a BADI. We need to deactivate all the implementation for that BADI..
Contd..
Click on the F4 on the FILTER TYPE field name and enter some search criteria to find a relevant data element.
Contd..
•
Click on the save button and active the BADI definition.
•
Now to ensure that the interface parameters have been adjusted by the system click on the interface tab and then double click on any method to see the list of parameters.
Contd.. Select the menu IMPLEMENTATION -> DISPLAY. •
The system will display all the implementation if it has more than one implementation.
•
Select the first implementation and click on the continue button
•
You will notice that now the implementation is capable of adding filters for the user names. You can click on the INSERT ROW button to add any new filters.
•
And as you can see from the screen shot below the new parameter list is automatically available in the implementation part.
•
Now lets use this filter type and make changes to the program .
•
Click on the save and activate the method.
•
Return to the initial screen of the implementation and define a filter value by clicking on the INSERT ROW button under the filter section. The filter value acts like a condition. Only if, during the runtime the filter value matches the method will get executed. Once done click on save and activate the implementation .
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.