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 implementation

Former Member
0 Likes
560

Hi,

Can you please tell me what is a BADI implementation and some real time examples for it.

4 REPLIES 4
Read only

Former Member
0 Likes
503

Hivaishnavi

BAdI like a trigger in SAP that SAP provide for additonal user requirment .

For example . In the purchase order , the sap provide BAdI that will trigger after the document is created . you can code program for doing something after purchase order is created .

Regards

Wiboon

Read only

Former Member
0 Likes
503

Hi,

BADI implementation is the implementation provided by the Customer/End user to the exit provided by the program.

You can provide the BADI implementation in transaction se19.

You need to specify the name of the BADI for which you are providing the implemenation.

Hope this will help u.

Regards,

Ramanath.

Read only

Former Member
0 Likes
503

hi vaishnavi.

welcome to sdn.

DEFINING THE BADI

1) execute Tcode SE18.

2) Specify a definition Name : ZBADI_SPFLI

3) Press create

4) Choose the attribute tab. Specify short desc for badi.. and specify the type :

multiple use.

5) Choose the interface tab

6) Specify interface name: ZIF_EX_BADI_SPFLI and save.

7) Dbl clk on interface name to start class builder . specify a method name (name,

level, desc).

Method level desc

Linese;ection instance methos some desc

😎 place the cursor on the method name desc its parameters to define the interface.

Parameter type refe field desc

I_carrid import spfli-carrid some

I_connid import spefi-connid some

9) save , check and activate…adapter class proposed by system is

ZCL_IM_IM_LINESEL is genereated.

IMPLEMENTATION OF BADI DEFINITION

1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.

2) Specify aname for implementation ZIM_LINESEL

3) Specify short desc.

4) Choose interface tab. System proposes a name fo the implementation class.

ZCL_IM_IMLINESEL which is already generarted.

5) Specify short desc for method

6) Dbl clk on method to insert code..(check the code in “AAA”).

7) Save , check and activate the code.

Now write a sample program to use this badi method..

Look for “BBB” sample program.

“AAA”

data : wa_flights type sflight,

it_flights type table of sflight.

format color col_heading.

write:/ ‘Flight info of:’, i_carrid, i_connid.

format color col_normal.

select * from sflight

into corresponding fields of table it_flights

where carrid = i_carrid

and connid = i_connid.

loop at it_flights into wa_flights.

write:/ wa_flights-fldate,

wa_flights-planetype,

wa_flights-price currency wa_flights-currency,

wa_flights-seatsmax,

wa_flights-seatsocc.

endloop.

“BBB”

&——————————————————————————————————-

*& Report ZBADI_TEST *

*& *

&——————————————————————————————————-

*& *

*& *

&——————————————————————————————————-

REPORT ZBADI_TEST .

tables: spfli.

data: wa_spfli type spfli,

it_spfli type table of spfli with key carrid connid.

*Initialise the object of the interface.

data: exit_ref type ref to ZCL_IM_IM_LINESEL,

exit_ref1 type ref to ZIF_EX_BADISPFLI1.

selection-screen begin of block b1.

select-options: s_carr for spfli-carrid.

selection-screen end of block b1.

start-of-selection.

select * from spfli into corresponding fields of table it_spfli

where carrid in s_carr.

end-of-selection.

loop at it_spfli into wa_spfli.

write:/ wa_spfli-carrid,

wa_spfli-connid,

wa_spfli-cityfrom,

wa_spfli-deptime,

wa_spfli-arrtime.

hide: wa_spfli-carrid, wa_spfli-connid.

endloop.

at line-selection.

check not wa_spfli-carrid is initial.

create object exit_ref.

exit_ref1 = exit_ref.

call method exit_ref1->lineselection

EXPORTING

i_carrid = wa_spfli-carrid

i_connid = wa_spfli-connid.

clear wa_spfli.

reward points for useful answers.

Read only

Former Member
0 Likes
503

Hi,

BAdi implementaion is same as you create customer enhancement by using the tcode CMOD and you write your code in the funtion module,But in the <b>BAdi implementation</b> You give the name of BAdi while impelementing by using the tcode se19 and write your code in method instead of Function Module.

This works same as your userexit and purpose is almost same.

Procedure for the same is mention below.

1) Please find the name of Badi for a particular transaction you can also use SE18 to find the name of Badi for a particular pupose.Or you can also find the name of Badi by looking into the main program and search for "CALL METHOD CL_EXITHANDLER=>GET_INSTACE" get the badi name from this method.

2) Once this is done you can implement this BAdi by using the transaction SE19 and double click on the method name and write your code here to achieve certain functionality or use the "BREAK-POINT" to see whether this BAdi is being called or not.

Please dont forgot to reward the point if it helps you.

Regards

Sajid