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.
cancel
Showing results for 
Search instead for 
Did you mean: 

user exits vs badi

Former Member
0 Kudos

hi all, one of my friends who is working in real time said to me , whenever a need for enhancement arises, its always better to use badi over user exit. he said , if v add our code in BADI , and in future if any problem arises with BADI , SAP wil take care, but same cant be done if v use userexits.

am quite confused.plz give the basic differences about badi and user eixt, and which of the two is preferred in REAL TIME and why?

thanx all.

5 REPLIES 5

Former Member
0 Kudos

BADI's are a newer enhancment method, but I disagree that SAP will have any less support than if you were to utilize a User Exit. Either way, SAP won't support the code that's inside either a BADI or User Exit, just the enhancement point itself. One could argue that a particular User Exit may become obsolete in the future releases, but I'm on ECC 6.0 and all the User Exits that we utilized back in 4.5 are still there.

Hope that helps,

Scott

Former Member
0 Kudos

Please see:

<a href="http://help.sap.com/saphelp_47x200/helpdata/EN/ee/a1d548892b11d295d60000e82de14a/frameset.htm">http://help.sap.com/saphelp_47x200/helpdata/EN/ee/a1d548892b11d295d60000e82de14a/frameset.htm</a>

Rob

Former Member
0 Kudos

Hi shiva,

i will give you a picture of what i have in mind in simple words without much of technical details....

BADi is an enhancement framework which you can literally say is upgraded within the past few versions...to start with -> the user exits we are using are highly restrictive in the sense we can write code only at certain locations or pockets

.If you notice BADI has been made powerful in the new Enhancement Framework..wherein we can create enhancement spots as hooks and write BADi which is an enhancement with respect to that spot and when new versions come these enhancement spots will not be altered but upgradation happens

Both of them has the same purpose of enhancements..but BADIs can be considered powerful,also they follow object oriented programming...

so..BADI is preferred because of its re-arrival with the new enhancement framework plus the powerful OOPS base it runs on

Hope it clarifies you

Regards

Byju

Former Member
0 Kudos

Hi,

BADI is just an object-oriented version of user-exit. Instead of entering program code into some function module (as in customer-exit), you define some class which has to implement predefined methods and those methods are fired at predefined points just like an old user-exit. Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently.

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

BADIs are Business add-ins. They are user exits/enhancements implemented in an Object Oriented fashion. They are put in specific places just like traditional user exits and must be activated sort of like traditional user exits.

http://help.sap.com/saphelp_nw2004s/helpdata/en/8f/f2e540f8648431e10000000a1550b0/frameset.htm

Regards

Former Member
0 Kudos

Hi Shiva,

<b>Difference Between BADI and User Exits</b>

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.

What is the system landscape?

1) Difference between BADI and USER-EXIT.

i) BADI's can be used any number of times, where as USER-EXITS can be used only one time.

Ex:- if your assigning a USER-EXIT to a project in (CMOD), then you can not assign the same to other project.

ii) BADI's are oops based.

2) About 'BDCMSGCOLL' it is a structure. Used for finding error records.

3) Full form of BADI 'Business addins'.

3) System land scape will be depends on your project

Ex:- 'Development server'>'Quality server'-> 'Production server'......

Check the below links:

http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/badi-vs-user-exit-405324

http://www.sapfans.com/forums/viewtopic.php?t=172792

Difference between BADI's & User-Exit.

1. Check the replies for your question which asked by another person.

http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/569786

2. Similar thread.

http://www.sapfans.com/forums/viewtopic.php?p=559472&sid=99caa729618b18a8f7c46cc2f047af52

3. Same question explained

http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm

Badi Tutorials

1. Sample program.

http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm

2. Implementing BADI.

http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm

Hope it helps.

3. From help.sap.com

http://help.sap.com/saphelp_nw04/helpdata/en/5f/071eed117c11d5b37d0050dadef62b/frameset.htm

http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm

http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/badi-vs-user-exit-405324

https://forums.sdn.sap.com/click.jspa?searchID=519283&messageID=2515351

https://forums.sdn.sap.com/click.jspa?searchID=519283&messageID=2627911

https://forums.sdn.sap.com/click.jspa?searchID=519283&messageID=2847358

https://forums.sdn.sap.com/click.jspa?searchID=519283&messageID=2584155

https://forums.sdn.sap.com/click.jspa?searchID=519283&messageID=2826338

https://forums.sdn.sap.com/click.jspa?searchID=519283&messageID=2859102

<b>Rewards Points if Useful</b>

Regards

Gokul

Message was edited by:

Gokul