Implement BADI MB_MIGO_BADI to make check on purcahse order items

Hello,
I would like to add some check and display corresponding messages in transaction MIGO on items.
I found the MB_MIGO_BADI and especially method CHECK_ITEM that seems to match this requirement.
The problem is that there is no data about PO in that method, just the selected ITEM row ID + an error structure to return messages.
When I look at the exemple class CL_EXM_IM_MB_MIGO_BADI there is a global atribute GT_EXTDATA that seems to handle this.
But when I do "Implementation --> Create" from the BADI screen, GT_EXTDATA does not exits.
I dont know how to get it or what to do in order to add it ?
Thank for your help,
Regards

Hello Morgan
Looking through the standard sample implementations of this BAdI on our ERP 6.0 system it seems to me that you select the item data within method HOLD_DATA_LOAD.
The class you mentioned is not a particular good example but even here my assumptions seems to be correct.
Within class CL_IM_OIH_MIGO_BADI the coding looks like this:
METHOD if_ex_mb_migo_badi~hold_data_load .
*------- Local data definition
  DATA: ls_goitem_tdp TYPE oih_s_goitem_tdp,
        ls_migo_htdp   TYPE oih_migo_htdp,
        lt_migo_htdp   TYPE STANDARD TABLE OF oih_migo_htdp.
*------- Select stored data ----------------------------------
* items
  SELECT *
    INTO TABLE lt_migo_htdp
    FROM oih_migo_htdp
    WHERE guid = i_guid.
*------- build members -----------------------------------------
*------- items
  CLEAR mt_goitem_tdp.
  LOOP AT lt_migo_htdp INTO ls_migo_htdp.
*------- mt_goitem_tdp
*   move field from hold QCI structure
    CLEAR ls_goitem_tdp.
    MOVE-CORRESPONDING ls_migo_htdp TO ls_goitem_tdp.
*   append line
    INSERT ls_goitem_tdp INTO TABLE mt_goitem_tdp.  " <<< static private attribute of impl. class
  ENDLOOP.
ENDMETHOD.
Thus, depending on the kind of MIGO execution you need to load the appropriate item data into a (static) attribute of your BAdI implementing class. The header details you should get within method STATUS_AND_HEADER.
Regards
  Uwe

Similar Messages

  • ATP check on Sales order items not due for delivery?

    All,
    In our Sales order, we have a number of dummy material lines. Now, when I use the normal sales order ATP check button, SAP does nothing. However, we have a custom program that does an ATP check, and it returns a zero qty.
    My question is, how do we know if a material is due for delivery, before an ATP check is done? The only suggestion I have is to look at the schedule line, and see if there is a material movement behind it.
    Any other ideas?

    Mark
    This is a classic SD Professional's dilemma, though it manifests differently at different clients. Mostly customers crib about future requirements stopping current sales orders from being delivered or Scheduling agreements with future delivery dates 'stealing' stock from Sales orders.  Another manifestation is production orders usurping components from sales orders for spares and so on. ATP functionality in SAP is pulled in various directions by conflicting demands and it is difficult to satisfy everyone. Companies with chronic probelms often end up with negative ATP which is perhaps the most serious stage of the prognosis.
    Your solution lies in:
    1) Availability check control settings : Sales documents vs. deliveries  : For the delivery, don't include 'Sales Requirements'  and for the sales orders, do include 'Delivery Requirements and so on.
    2) Performing nightly rescheduling (V_V2) with Delivery priority and delivery date as key sort criteria. If the volumes are not high, you can try using manual confirmation via CO06.
    Take a look at this OSS note and the ones mentioned within:
    36520 - Availability check for delivery

  • Purcahse Order Item level taxation

    hi guru's,
           i got a new tax to print the tax value and cess of an associated tax code at item leve for a PO. my fuctional consultant says to analyze the standard program how it simulates the tax value based on tax code.
    he says it's not possible to retrieve data from d/b table. it has displayed dynamically as how the standard program does.
         In ME21N transcation, at item level, in the invoice tab- there is field TAX CODE n a push button TAXES beside it. when v select a tax code and press the push button taxes it automatically simulates tax.
         he wants me to analyze the standard program for that particular PAI n write the logic. wht i feel this is not a feasible solution.
       Below r some function modules related to tax. will any of them work for my scenario.
    plz help me to find the feasible solution.
    CALCULATE_TAXES_GROSS
    CALCULATE_TAX_DOCUMENT
    CALCULATE_TAX_DOCUMENT_START
    CALCULATE_TAX_FROM_GROSSAMOUNT
    CALCULATE_TAX_FROM_NET_AMOUNT
    CALCULATE_TAX_ITEM
    best solutions will be rewarded.
    Thanks n regards,
    vicky.

    hi bala krishnan,
               first of all thanks for the inputs.
    i've fone thru the tables mentioned by u. i ve retrive the tax and cess based on both company code and plant as v using a global template to display them.
    plz give solution for requested.
    thanks n regards,
    vinay

  • Problem after Implementing BADI

    Hi all,
    I implemented BADI MB_MIGO_BADI  it was working fine, but it was deleted
    and again trying to implement second time it is showing the message
    Implementation ZTEST_MIGO migrated (see long
    for instructions) and choose enhancement spot and i implemented the BADI but
    this time it is not triggering.
    what might  be the problem any help?
    Thanks
    Satish.

    Dear Satish,
    Once u implement  a BADI in ECC it will automatically generates the Enchament Spot. Here u deleted ur BADI implementation. Ur BADI got deleted and the enhancement for tht not get deleted. Thts y its showing error when  u r creating the second time. So implement ur badi inside the Enhancement Spot using SE19.
    With Regards,
    Sumodh.P

  • Implementing maker-checker functionality using PLSQL

    Hi,
    I would like to know if someone has implemented maker-checker functionality. If so then please let me know the tables/views to be created. PLSQL code to implement the logic. If you have any design document then please share.
    Looking forward for your help.

    user10566312 wrote:
    Hi,
    I would like to know if someone has implemented maker-checker functionality. If so then please let me know the tables/views to be created. PLSQL code to implement the logic. I'm not going to do your work. But I'd like to share an Idea:
    The table containig the objects needing double-check would get a mandatory Creat_user attribut filled with the (front end) user name drawn from the v$session.
    Then I'd create a "Check" table with Object_id and check_user as the only attributes. The check_user
    attribut would also be filled with user name found in v$session.
    I'd have a Trigger on the "Check" table making sure that the user inserting the "Check" entry is not the same as the one that created the Object.
    Of cause I'd prevent inserting or updating the user attributes with custom values.
    bye
    TPD

  • BADI MB_MIGO_BADI not updating custom field in MSEG Table

    Dear Experts,
    I am working on screen exit In MIGO transaction for transfer Posting.
    I checked that BADI MB_MIGO_BADI having facility for screen exit and method line_modify having facility to change GOITEM Structure for the changed line item.
    Now, to make this functionality work I have enhanced include structure CI_COBL which is available in both mseg table and goitem structure, now I have this customized fields on my custome tab through the enhancement and also to update this value 2 custom fields created in goitem structure and MSEG table through include structure  CI_COBL.
    Here my question is at the time of transfer posing creation in MIGO when I am passing the value in custom fields through screen and assigning it to custom fields of structure GOITEM through LINE_MODIFY method, it is giving me below worning message
    BADI: Field GOITEM-ZZIDNLF is not ready for input. (Change is not taken over)
    Now I have debuged the code, also checkout many threads and came to know that because of few checks in standred program (iNCLUDE:LMIGOKL3) these fields will not be updated WHERE IT always checks whether these fields are ready for input or not and if not ready then instead of assigning the values it throws worning message.
    Now can you please through some light how can I go ahead as I have check out many threads and also tried to change value of cs_goitem structure using field symbol but throughing dump that it is blocked against changes through field symbol.
    The helpful answers will be highly appriciated.

    Hi,
    In the badi mentioned by you GOITEM is the importing parameters & if the relevant field is not used in any MIGO screen you cannot change the data.
    Please check example BADI interface: IF_EX_MB_MIGO_BADI~LINE_MODIFY
    Please check the BADI documentation:
    Changed data in GOITEM is only adopted if the relevant fields are visible and ready for input.
    Changed data in GOITEM is not adopted if the relevant field is not used in any MIGO screen (warning via MIGO 049).
    Changed data in GOITEM is not adopted if the relevant fields are not ready for input (warning via MIGO 050)
    Thanks and Regards,
    Chandra

  • Implementing BADI TRIP_WEB_NUMBER, problem reading a field

    Hi All,
    Have anyone implemented BADI TRIP_WEB_NUMBER before,
    Interface : IF_EX_TRIP_WEB_NUMBER
    Method:     USER_EXIT_NUMBER_INTERNAL
    I need a help.
    In this method i have exporting parameter NUMBER_RANGE TYPE INRI-NRRANGENR
    so my requirement is just to change this parameter for particular conditon.
    Problem is to make condition i need a field SCHEMA
    You can check Structure HEAD_PERIO-SCHEM
    or elset T706S OR T706T...
    I need to read that field at runtime somehow, how can i achieve that pls help.
    i can able to read only the date....
    Pls help..
    Thanks

    Find out the main program name where the variable HEAD_PERIO-SCHEMA is declared. Then you can use the ABAP call stack method to retrieve the variable like below. This method can only be used to read a variable from ABAP call stack memory, that is the variable should be available in the scope of the program which is present in the run time call stack your BADI gets called in.
    DATA: lv_name_xvbak(30)  VALUE   '(SAPMV45A)VBAK'.
    FIELD-SYMBOLS: <xvbak> TYPE  vbak.
    * Retrieve Sales order details from abap stack
    ASSIGN (lv_name_xvbak) TO <xvbak>.
    IF sy-subrc NE 0.
      EXIT.
    ENDIF.
    In the above code you can replace SAPMV45A with the main program name where field SCHEMA is available and VBAK with HEAD_PERIO (the structure or internal table where the field you want is available)
    For accessing internal tables similarly
    DATA:  lv_name_xvbap(30)  VALUE   '(SAPMV45A)XVBAP[]'.
    FIELD-SYMBOLS: <xvbap> TYPE TABLE OF vbap.
    ASSIGN (lv_name_xvbap) TO <xvbap>.
    IF sy-subrc NE 0.
      EXIT.
    ENDIF.

  • Implementing BADI

    Hi,
    How to implement BADI?
    I want to Implement Badi for t.code FBL3N .
    In This i need to update BSEG table.
    please give me solution
    Edited by: Santhosh on Jan 22, 2008 4:50 PM

    Business Add-Ins
    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 (SMOD/CMOD Page 40), 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-system infrastructure (SAP and customers), but instead allow for multiple levels of software development (by SAP, partners, and customers, and 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. In Release 4.6A, program and menu enhancements can be made with Business Add-Ins. 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
    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
    8) 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.
    Some useful URL
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
    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.
    Regards

  • Problem on Implementing badi ME_GUI_PO_CUST

    Hi Expert,
    I have implement BADI ME_GUI_PO_CUST, to add the new tab.
    I have managed to View the tab in Both ME21N, and ME22N with implement SUBSCRIBE and MAP_DYNPRO_FIELDS.
    method IF_EX_ME_GUI_PO_CUST~SUBSCRIBE
      DATA: ls_subscriber LIKE LINE OF re_subscribers.
      CHECK im_application = 'PO'.
      CHECK im_element = 'ITEM'.
      CLEAR re_subscribers[].
      ls_subscriber-name = subscreen1.
      ls_subscriber-dynpro = '0002'.
      ls_subscriber-program = 'ZRPP_ME_GUI_PO_CUST_SCREEN'.
      ls_subscriber-struct_name = 'CI_EKPODB'.
      ls_subscriber-label = text-001.
      ls_subscriber-position = 7.
      ls_subscriber-height = 7.
      APPEND ls_subscriber TO re_subscribers.
    METHOD : IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS
      FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
      LOOP AT ch_mapping ASSIGNING <mapping>.
        CASE <mapping>-fieldname.
          WHEN 'ZCNUM'.      <mapping>-metafield = mmmfd_cust_01.
        ENDCASE.
      ENDLOOP.
    Method IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS
      DATA: lw_fieldselection LIKE LINE OF ch_fieldselection.
      LOOP AT ch_fieldselection INTO lw_fieldselection.
        lw_fieldselection-fieldstatus = '+'.
        MODIFY ch_fieldselection FROM lw_fieldselection.
      ENDLOOP.
    I need to store the value, and some of thread said it required methods:
    TRANSPORT_FROM_MODEL
    TRANSPORT_TO_DYNP
    TRANSPORT_FROM_DYNP
    TRANSPORT_TO_MODEL
    I have click on the subcreen, or enter at the field, but it will not able to trigger the Above Methods.
    How do I do for the to trigger above Methods? Or Should I added some additional code at screen program? I want SAVE the data actually into EKPO.
    Thanks in advance.

    Hi Sim,
    Recently we have the same reqirement.
    You can have a look at the below code..
    First method: SUBSCRIBE  
    DATA: ls_subscriber LIKE LINE OF re_subscribers.* we want to add a customer subscreen on the Header tab
        CHECK im_application = 'PO'.
        CHECK im_element     = 'HEADER'.* each line in re_subscribers generates a subscreen. We add one subscreen in this example
        CLEAR re_subscribers[].
    * the name is a unique identifier for the subscreen and defined in this class definition
        ls_subscriber-name = subscreen1.
    * the dynpro number to use
        ls_subscriber-dynpro = '0001'.
    * the program where the dynpro can be found
        ls_subscriber-program = 'SAPLZKMMM_KAU86037'.
    * each subscreen needs his own DDIC-Structure
        ls_subscriber-struct_name = 'CI_EKKODB'.
    * a label can be defined
        ls_subscriber-label = text-001.
    * the position within the tabstrib can be defined
        ls_subscriber-position = 13.
    * the height of the screen can be defined here. Currently we suport two screen sizes:
    * value <= 7 a sevel line subscreen
    * value > 7  a 16 line subscreen
        ls_subscriber-height = 7.    APPEND ls_subscriber TO re_subscribers.Here, parameter u2018im_elementu2019 is defined as u2018HEADERu2019 as we are adding new tab in header section of PO.  
    Define a function group and take the main program and define it in ls_subscriber-program.
    Also define a sub screen with the required fields and assign it to the parameter ls_subscriber-dynpro.  
    Then method MAP_DYNPRO_FIELDS  
    FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
        LOOP AT ch_mapping ASSIGNING <mapping>.    CASE <mapping>-fieldname.      WHEN 'ZZPAYMENT_AGRE'.      <mapping>-metafield = mmmfd_cust_03.
          WHEN 'ZZPROJECT'.                     <mapping>-metafield = mmmfd_cust_04.
        ENDCASE.  ENDLOOP.  TRANSPORT_FROM_MODEL:
    DATA:     l_header       TYPE REF TO if_purchase_order_mm,
                  ls_mepoheader  TYPE mepoheader,
                  ls_customer    TYPE CI_EKKODB.*--------------------------------------------------------------------*
    * system asks to transport data from the business logic into the view
    *--------------------------------------------------------------------*    CASE im_name.      WHEN subscreen1.* is it an Header? im_model can be header or item.
            mmpur_dynamic_cast l_header im_model.
            CHECK NOT l_header IS INITIAL.* transport standard fields
            ls_mepoheader = l_header->get_data( ).* store info for later use
            MOVE-CORRESPONDING ls_mepoheader TO dynp_data_pbo.
          WHEN OTHERS.
        ENDCASE.    TRANSPORT_TO_DYNP:
    Define a FM 'ZK_KAU86037_PUSH' to push the values.CASE im_name.      WHEN subscreen1.        CALL FUNCTION 'ZK_KAU86037_PUSH'
              EXPORTING
                im_dynp_data = dynp_data_pbo.      WHEN OTHERS.
        ENDCASE.    TRANSPORT_FROM_DYNP:
      Define another FM 'ZK_KAU86037_POP'.CASE im_name.      WHEN subscreen1.        CALL FUNCTION 'ZK_KAU86037_POP'
              IMPORTING
                ex_dynp_data = dynp_data_pai.        IF dynp_data_pai NE dynp_data_pbo.
    * something has changed therefore we have to notify the framework
    * to transport data to the model
              re_changed = mmpur_yes.
            ENDIF.      WHEN OTHERS.
        ENDCASE.  TRANSPORT_TO_MODEL:     
            DATA: l_header             TYPE REF TO if_purchase_order_mm,
              ls_mepoheader        TYPE mepoheader,
              ls_customer          TYPE CI_EKKODB,
              l_po_header_handle   TYPE REF TO cl_po_header_handle_mm.*--------------------------------------------------------------------*
    * data have to be transported to business logic
    *--------------------------------------------------------------------*    CASE im_name.      WHEN subscreen1.* is it an item? im_model can be header or item.
            mmpur_dynamic_cast l_header im_model.
            CHECK NOT l_header IS INITIAL.        ls_mepoheader = l_header->get_data( ).* standard fields changed?
            IF dynp_data_pbo-zzpayment_agre   NE dynp_data_pai-zzpayment_agre
            OR dynp_data_pbo-zzproject        NE dynp_data_pai-zzproject.* update standard fields
              ls_mepoheader-zzpayment_agre   = dynp_data_pai-zzpayment_agre.
              ls_mepoheader-zzproject  = dynp_data_pai-zzproject.
              CALL METHOD l_header->set_data
                EXPORTING
                  im_data = ls_mepoheader.
            ENDIF.
          WHEN OTHERS.    ENDCASE. 
    Then we have to implement one more BADI to display the tab and update the values.
    Implement the BADI ME_PROCESS_PO_CUST. This cannot be used multiple times.  
    In this, we have methods (PROCESS_HEADER,PROCESS_ITEM).if we need to any validations for the fields we can write the logic here in this methods. In my case I need to check for the document type which I implemented in the method (PROCESS_HEADER).  
    Hope it helps you.
    Thanks
    Arbind

  • Need Ways to implement Badis in ECC 6.0 (Enhancement Points)

    Hi experts,
    I am new to BADIs. I've a requirement to find a BADI for changing Customer number while posting customer invoice in SAP (the data is coming from XI system in IDOC format). I want to know any BADIs or userexits are there for my requirement. At the same time I want to know how to implement a BADI in ECC 6.0 .Any docs releated to this topic will be of great help.
    points will be awarded for sure..........

    hi Poorna Chandras... ,
    These steps should enable you to find any BADI related to any transaction in a matter of minutes.
    Procedure 1:
    1) Go to the transaction SE37 to find your function module.
    2) Locate the function SXV_GET_CLIF_BY_NAME.
    3) Put a breakpoint there.
    4) Now open a new session.
    5) Go to your transaction. 6) At that time, it will stop this function.
    7) Double click on the function field EXIT_NAME.
    8) That will give you name of the BADI that is provided in your transaction.
    Business Add-Ins
    Procedure 2:
    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).
    4) Now 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
    SAP Business Add-Ins (BAdIs) are one of the most important technologies used to adapt SAP software to specific requirements. BAdIs were introduced with Release 4.6 and replace function module exits. This technology is not limited to SAP applications. BAdI calls can be integrated in customer applications. These can then be enhanced by other customer applications. In the various SAP applications, BAdI calls are implemented at places where enhancements are appropriate.Business add-ins are enhancements to the standard version of the system. 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.
    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, country-specific versions, industry solutions, partner, customer, and so on). You can create definitions and implementations of Business Add-Ins at any level of the system landscape.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 differentiate between Add-In implementations using the filter Country or other criteria.
    The enhancement technique is set up in such a way that it is possible to define interfaces for ABAP soure code, screens, GUI interfaces, and tables. These allow 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.
    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. BADI/UserExists are used to enhance R/3 For customer Needs.
    Actually there is no transaction to find when and where the BADI
    is called.
    1. You can see the BADI description to find why it is called.
    2. Once you implemented and activated the BADI, put some break points
    in the BADI and see "where else used" option to check in what all
    programs this BADI is called. In the ITS debug, when you are doing
    the operation what exactly the BADI description tells, it will take
    to the break points and you have to do manually debug the whole thing.
    I know its bit difficult to do manual debug the whole thing, it
    takes lot of time, but you have to be very patience when you are
    dealing with BADI's.
    Transaction SE18 is the BADI equivalent of transaction SMOD
    Transaction SE19 is the BADI equivalent of transaction CMOD .
    To find the BADI to be implemented and then implement this via SE19.
    Check this blogs 2 find a BADI:
    How to find if we have a BADI in Transaction VB02
    Re: BADI for screen enhancement in MM01  transaction
    Re: BADI and User exits
    How To Define a New BAdI Within the Enhancement Framework (Some Basics About the BAdI,BAdI Commands in ABAP,
    When to Use a BAdI?)
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    How to implement a BAdI And How to Use a Filter
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    Introducing Business Add-Ins
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
    How to implement BAdi in Enhancement Framework
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702
    Business Add-Ins
    http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
    BAdI: Customer-Defined Functions in the Formula Builder
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    Difference Between BADI and User Exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    To Use BADI - Business Add In you need to Understand ABAP OO Interface Concept
    http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
    You can check the links for Step by Step Badi Implemntation
    (very helpful self learning docs).
    BADI Step by Step Implementation.
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/63ee7f486cc143a560799d8803ce29/content.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/srm/badi-general+information&
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    The specified item was not found.
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    http://www.allsaplinks.com/badi.html
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-serieshttps:///people/alwin.vandeput2/blog/2006/04/13/how-to-search-for-badis-trace-it
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework /people/thomas.weiss/blog/2006/05/03/source-code-enhancements--part-5-of-the-series-on-the-new-enhancement-framework
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://www.esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40921dd7-d5cf-2910-1894-bb62316afbd1
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    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/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    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
    http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
    Difference Between BADI and User Exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    New to Badi`s
    New to BADI
    New to BADI long question
    Badi
    /message/4866901#4866901 [original link is broken]
    Hope this helps
    Rewards if useful.........
    Cheers
    Kripa Rangachari.

  • I need the BADI or the way for WBS budget check at SC line item

    Hi SRM folks,
    Do you have any BADI or the good way to do the WBS budget check at SC line item level.
    Donot suggest me the BBP_BUDGET_CHECK.ie for SC level only.
    Is there any way to do at line item level.
    Thanks in advance.
    srini.

    Hi
    Either use BBP_ITEM_CHECK_BADI or BBP_DOC_CHECK_BADI.
    Note -> Please read the relevant standard SAP documentation provided in this case for using SE18 Transaction.
    <b>Please go through the following pointers, which will definitely help -></b>
    Re: Reg the budget check in Shopping cart
    Re: Budget analysis
    How to implement the badi BBP_DOC_CHECK_BADI??
    Budget check for service PO
    Budget Check error for Fixed Assets ? :-(
    <u>Other related links -></u>
    Budget Check
    http://help.sap.com/saphelp_srm50/helpdata/en/4f/b3e739e62b714be10000000a114084/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/de/237440116fd279e10000000a114b1d/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/4e/1d74eff196d64e880fd28d41d4502b/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/5a/af5eff85d011d2b42d006094b92d37/frameset.htm
    Do let me know as well.
    Regards
    - Atul

  • Can we implement BADI's in 4.6c version

    Hi experts,
    Can we implement BADI's in 4.6c version.
    regds
    venky

    Hi,
    Please check the following for BADI knowledge.
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    Regards,
    Ranjit Thakur.
    Please Mark The Helpful Answer.

  • Implementing BAdi HRHAP00_AUTHORITY

    Good Afternoon Everyone,
    I have the task of writing a functional specification to implement BAdi HRHAP00_AUTHORITY to prevent employeesfrom changing their appraisal ratings and from displaying their "In Process" appraisal documents. I have been told that this BAdi can be modified to include logic to handle these to business requirements.  However, I am unsure how to write the functional specification for this BAdi.
    Can someone let me know if 1) Implementing this BAdi will meet the business requirements identified, and 2) you have a functional specification for this BAdi I can use and modify.
    Any suggestions or comments are welcomed.
    Felicia

    Hi,
    Check this thread: Coulumn Access- Substatus
    I advise you to use BADI HRHAP00_COL_ACCESS.
    Read this guide in order to know the reason [http://nicx.co.uk/attachments/File/1%20Business_Add_Ins.pdf|http://nicx.co.uk/attachments/File/1%20Business_Add_Ins.pdf]
    Hope this will clarify you.
    Rewards points....

  • Implementing BADI - SMUM_ASSIGN_ROLE

    Hello All,
    I am into implementing BADI SMUM_ASSIGN_ROLE, As first time I am going to do it, I encountered a problem. I went into se19 I gave the implementation name as Z_SMUM_ASSIGN_ROLE and then on the second popup I gave the definition name as SMUM_ASSIGN_ROLE. When next screen comes I tried to do a syntax check it says BADI imlementation Z_SMUM_ASSIGN_ROLE does not exist and when I save it it says "Please specify filters type".
    Could any one tell me what are the steps to implement a BADI.
    Thanks,
    Mark

    Hi Mark,
    Plz follow the following steps to implement the BADI.
    a)     The list of Business Add-ins available in the system can be found through SAP Reference Implementation guide (IMG) or in component hierarchy. Badi’s definition is included in IMG so that the customer/partner can create suitable, company-specific implementations. 
    b)     In the SAP menu, choose ABAP Workbench -> Utilities -> Business Add-ins or transaction code SE19.
    c)     Enter the implementation name and click on the create button.
    d)     Enter the BAdi name
    e)     Enter the short description for the BAdi implementation and implement the interface in the class appearing in the BAdi implementation screen.
    f)     Double click on the implementation class and insert the desired source code for the implementation between the method ZIF_EX_BUSINESSADDIN~CONVERSION. And Method. In this particular example enter the statement translate parameter to upper case.  Save and activate your entries and return to the change implemention screen.
    g)     Choose Activate, now you can use this implementation when the application program is executed. Several implementations may exist for a Business Add-in but that is not used in multiple use basis. However only one implementation can be activate at any one time. But in case of multiple use of the BAdi, we can have multiple implementations activate. The instance generation of the implementing class must set the attribute as public and not as private, protected or abstract. System will give dump if you do so.
    <b>Reward points if it solves ur query</b>
    Thanks
    Chinmay

  • BADI mb_migo_badi error message

    Hi,
    I've added my custom field in the structure GOITEM called ZZGROES.In the method Line/Item change in my implementation of BADI MB_MIGO_BADI my field takes value from MARA for current material number. I've added the field on the screen '0200' in SAPLMIGO also. When I start transaction MIGO I choose material number and the system returns me an error message: BADI: You are not allowed to change the field content of field GOITEM-ZZGROES.
    How can I do that ? I would like to display the size of material together with material description.
    Best regards,
    Stefan

    solved

Maybe you are looking for

  • Another TypeError: Error #1009 Problem

    Hey all,   I've searched the 'net and searched these forums but can't seem to figure out what I'm doing wrong.  I'm creating a flash based game for school that so far has ten frames on the timeline.  I have buttons on frame one, frame 5, and frame 10

  • Fields are in disable state

    Hi, I am getting all my fields in disable state...... please help me why i am getting in disable state Thanks& Regards Ravi Shnkar B

  • Audio tracks are not importing into Premiere Pro CS3

    I am importing video files but audio does not seem to come attached.  I know that the files have audio since I've check iwth other media players.  What may I be missing?

  • Help using simple deployed session bean

    hi, I have deployed a hello world like session stateless bean The deployment worked just fine, but i don't understand where is the stub generated by the deployment . How do i use the bean into an application client? i have tried to create an applicat

  • IPhone will not retain wrt54g password

    Hi all. I have  a iphone that will not retain the password for a WRT54g. Each time I leave the house, I have to renter the wifi password on my phone. It remembers other networks, just not the house. I'm clueless on modems, so if you suggest that I do