Application Development and Automation 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: 
Read only

BADI

Former Member
0 Likes
686

Hello ABAP geeks

I am a CRM functional guy and have an idea about BADIs.My question is

if an ABAPer can write code to get standard SAP to behave in a custom friendly way, what is the need for a BADI in the programs ?

Thanks

Jessy

7 REPLIES 7
Read only

Former Member
0 Likes
664

BADI stands for Business Add IN. They are oops version of user exits.

Check this link for more info.

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

Regards

vasu

Read only

0 Likes
664

Hi Vasu

I know this and have gone through this.What I wanted to know is the benefit of using a BADI ?

Read only

Former Member
0 Likes
664

go through this link

/message/1388480#1388480 [original link is broken]

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

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

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/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt

Here is the best solution,

Follow the below steps to find out what all BADI's are called when you press any button in any transaction.

1) Goto se24 (Display class cl_exithandler)

2) Double click on the method GET_INSTANCE.

3) Put a break point at Line no.25 (CASE sy-subrc).

Now

4) Execute SAP standard transaction

5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.

6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.

7) This way you will find all the BADIs called on click of any button in any transaction

Please give me reward point..

Thanks

Murali Poli

Read only

Former Member
0 Likes
664

<i>if an ABAPer can write code to get standard SAP to behave in a custom friendly way, what is the need for a BADI in the programs ?</i>

ABAPer can write code to get standard SAP to behave in a custom friendly way The above said only possible through user exits or BADI or Enhancements.

That is the Need of BADI in the Standard Programs. But your question is not clear . are you asking the use of BADI's in custom programs....

Regards

Vijay

Read only

former_member404244
Active Contributor
0 Likes
664

Hi jessy,

There are two things one is user exit and the other is customer exits...U r talking about customer exits...

When we go for customer exits then we are overwriting the standard SAP functionality,when we go for userexits we are enhancing the SAP functionality..Like the userexits BADI'S also enhances SAP functionality,instead of overwriting like customer exits..

Plz refer the below link..

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

Reward points if u find useful..

Regards,

Nagaraj

Read only

Former Member
0 Likes
664

Hi,

1. BAdI object

a. With classic BAdIs, a BAdI object is created by calling a factory method, and referenced via a reference variable of the type of the BAdI interface.

b. With new BAdIs, a BAdI object is created via the ABAP statement GET BADIas a handle for the calls of BAdI methods, and referenced via a reference variable of the type of the BAdI. A BAdI object is an instance of an internal BAdI class, which otherwise is invisible to the outside.

2. Passing comparison values for the filter

a. With the classical BAdIs, the filter values are stored in a structure and passed with the call of the BAdI methods.

b. With the new BAdIs, the comparison values for the filters used to search for implementations are passed when the BAdI object is created with the GET BADIstatement.

There is no way of migrating the call of the factory method one-to-one into the ABAP statement, because GET BADI can also return an existing BAdI object, which is not possible with the factory method.

3. Calling BAdI methods

Passing comparison values for the filter

a. A classic BAdI can be called only once and the call positions are registered centrally.

b. With new BAdIs, multiple calls are possible and the call positions are not registered centrally.

For the above reasons, an automatic call migration is not possible.

Have a look at below link.

http://help.sap.com/saphelp_nw2004s/helpdata/en/ee/6f3b42ea85b26be10000000a155106/content.htm

http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/4d3e42fc94aa04e10000000a1550b0/content.htm

I hope it helps.

Regards

Sudheer

Read only

Former Member
0 Likes
664

Hi,

1. We can integrate self defining functions

2. We can also call BAPI methods in USer Exit

3. Based on OOPS concepts, can be extendable.

4. Multiple implementation possible

5.Since specific industries often require special functions BADI is useful.

6. Multi Level system landscape.

7. You can create definitions and implementations of Business Add-Ins at any level of the system landscape.

8. SAP guarantees the upward compatibility of all Business Add-In interfaces.

Reward if useful!