Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
Showing results for 
Search instead for 
Did you mean: 

User Exit / BADI

Former Member
0 Kudos

Hi ,

What is the difference between BADI and user exits.




Former Member
0 Kudos


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)

0 Kudos


Can you please reward points for the helpful answers and close all the inactive posts.


0 Kudos


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,


0 Kudos

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

Former Member
0 Kudos


<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