Difference Between BADI and User Exits
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. Since specific industries often require special functions, SAP allows you to predefine these points in your software.
As with customer exits two different views are available:
In the definition view, 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.
In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available.
In contrast to customer exits, Business Add-Ins no longer assume a two-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, partner, and customer solutions, as well as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure.
SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time. In addition, Business Add-Ins can be defined according to filter values. This allows you to control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example).
All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard. A single Business Add-In contains all of the interfaces necessary to implement a specific task.
The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects.
SE18 - BADI definition
SE19 - BADI implementation
(Please reward points for helpful answers)
I am trying to create an implementation for BADI_SD_SALES, but the system gives me this error when I do Implementation/Create.
This is the error message:
"The BADI definition is provided for internal usage only.No BADI implementation can be created or copied by a customer.
Am I using the wrong BADI? all I'm trying to do is modify some Sales Order values in SAVE_DOCUMENT.
Thanks in advance for your help,
I also ran into this problem and then found note 648427 which states that all "BADI_SD_SALES*" BADIs are for internal use only and cannot be implemented in a customer system. Note that SAP controls this setting through the indicator field INDICATOR in table SXS_ATTR (this is how you can check which BADIs cannot be implemented). Since this setting is not changeable, the only alternative is to use the old SD sales order user exits (as stated in note 648427).
.... I still have no idea why SAP won't release these BADIs to customers, but I guess that is just the way it is
Message was edited by: Lee Haire
<b>User-Exit</b> is a specific place in a transaction-process where SAP offers
third parties to include there own business functionality. Actually
User-Exit is the namespace used for Exits programmed by SAP specifically
for SD. For the other modules it's called Customer-Exit.
<b>Business Add-Ins (BADI) </b>
The use of object orientated code within SAP has lead to new method of
enhancing standard SAP code called Business Add-Ins or BADI's for short.
Although the implementation concept is based on classes, methods and
inheritance you do not really have to understand this fully to implement
a BADI. Simply think of methods as a function module with the same
import and export parameters and follow the simple instructions below.
1. Execute Business Add-In (BADI) transaction SE18
2. Enter BADI name i.e. HRPBSGB_HESA_NISR and press the display
3. Select menu option Implementation->Create
4. Give implementation a name such as Z_HRPBSGB_HESA_NISR
5. You can now make any changes you require to the BADI within
implementation, for example choose the Interface tab
6. Double click on the method you want to change; you can now enter
any code you
7. Please note to find out what import and export parameters a
method has got return
the original BADI definition
(i.e. HRPBSGB_HESA_NISR) and double click on the method name
for example within HRPBSGB_HESA_NISR contract is a method
8. When changes have been made activate the implementation
Also check this forum
Hope it helps u.
Kindly reward points if u find it useful