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: 

Calling a BADI

Former Member
0 Kudos

How is a BADI called from the SAP code ? If I want to create a BADI where exactly do i have to specify in the SAP code that I am calling that BADI ? Is there some configuration where i need to switch on this call ?Kindly let me know.Thanks.

5 REPLIES 5

former_member156446
Active Contributor
0 Kudos

why do you want to create a BADI when SAP has provided tons.

SAP calls a BADI like this : Include : LV56KF98 in Ecc 6.0

form exit_badi_v56k_ibs.

* migrated to new badi
  data: l_ref_badi_v56k_ibs type ref to BADI_V56K_IBS.

  get badi l_ref_badi_v56k_ibs.

     CALL BADI l_ref_badi_v56k_ibs->change_outbound
      EXPORTING
        control_record_in  = control_record_in
        control_record_out = control_record_out
        i_data             = db_data
        it_idoc_reduction  = tab_idoc_reduction[]
      changing
        ct_idoc_data       = int_edidd[].

0 Kudos

The thing is there is already a BADI implementation that is not getting called once i do a goods issue(which it should do).How and where do i specify how to call this BADI from the SAP std code ?

0 Kudos

ohh if there is already an implementation then hot se19 > <implementation name> and see if its activated.. if not try to reactivate it agian. if its active and still not working then you need to see why its not hitting in the transaction may be the data is not supporting it.

if you know the BADI name (NOT the implementation name)

se18 < badi name>

hit where use list to see where thant BADI is called..

to know which implementation is being used:

menu path > enhancement implementaion > over view to see the implementaion name.

0 Kudos

Hi Abhilasa,

in SE24, opn cl_exithandler.

open the method get_instance.

here keep a break point. and hten run yor tcodes. it will stop at eash possible badi definition for that tcode at each step.. so after getting the proper place and proper definition, you implement it.

Clemenss
Active Contributor
0 Kudos

Hi Abhilasa,

for BADI you need elementary knowledge of oo programming: A BADI is an interface defining the methods and parameters just abstract. The standard defines certain points where an active implementation of the interface is called. The CL_exithandler creates an instance of the (customer) implementation of the interface. The method(s) is (are) called and processed.

That means you can not decide if and where a BADI is called, you can just create the implementation and activate it.

Regards,

Clemens