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: 

BADI

Former Member
0 Kudos

I heard that BADI is mainly used by Functional People, is it so?

Can somebody give me the path how is BADI working?

1 ACCEPTED SOLUTION
3 REPLIES 3

Former Member
0 Kudos

Hi,

BADI

BADI(Business Add-In) is the object oriented method of user exits...

Each BAdI has a definition and more than one implementation. The definition means the methods(in class concept) that are used for performing various functions. The BAdI definition can be viewed in SE18 transaction(for standard ones) and user-defined BAdIs can be created in the same transaction as well.

When you create a BAdI definition, an class interface will be automatically created and you can define your methods in the interface. The implementation of the methods can be done in SE19 transaction .

YOu can go through these links...

http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf

http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt

http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc

http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc

http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip

http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt

Consider the following example...

Here we have created the Filter Dependent BADI 'z_delta_7_badi_prg2'.

and created Implementation for the same in which we define the method as follows:

Method ZIF_EX_DELTA_7_BADI_PRG2-GET_BURKS.

IF FLT_VAL = ‘0001’.

Z_TAX_RATE = ‘0.15’.

ELSEIF FLT_VAL = ‘1000’.

Z_TAX_RATE = ‘0.20’.

ENDIF.

Endmethod.

This method was defined while creating the BADI, and its method was written in Implementation.

REPORT z_delta_flt_val_demo.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETER : p_burks LIKE t001-burks. “Parameter for company code

SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.

DATA: l_badi_instance TYPE REF TO zif_ex_delta_7_badi_prg2,

l_tax_rate TYPE string.

*Call BADI within the Program

CALL METHOD cl_exithandler=>get_instance

EXPORTING

exit_name = 'z_delta_7_badi_prg2'

CHANGING

instance = l_badi_instance

EXCEPTIONS

OTHERS = 1.

*Call Method GET_BURKS Passing the Company Code and Tax Rate is *returned

CALL METHOD l_badi_instance->get_burks

EXPORTING

flt_val = p_burks

IMPORTING

z_tax_rate = l_tax_rate.

IF l_tax_rate IS INITIAL.

WRITE:/ 'Tax Rate Not Returned For Company Code: ', p_burks.

EXIT.

ELSE.

WRITE:/ 'Tax Rate For Company Code: ', p_burks 'is' , l_tax_rate.

EXIT.

ENDIF.

And in main program we will call BADI as shown above.

Regards

Former Member
0 Kudos

Hi Monalisa,

Please go thru the stuff below.

<b>BADI</b> 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.

<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.

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

<b>

Rewards Points if Useful</b>

Regards

Gokul