Ques on Single use Badi

Hi Frds,
I search a lot but could not found much except defination of Singel Use Badi.
Few Ques i have, Please share you though.
Example : Calculating Net value in Badi.
1) After the single use BAdi called, can we change this value at run rime.
2)  Name few single use BAdi in SAP CRM.
3) Some of the example/requirement where single use Badi used.
Thanks
Imran

Hi Deva,
It is up to functional requirements. In multiple use BADI you can implement a BADI many times depending on filter value. Think the scenario you are workin in an international company and there is a requirement to calculate tax for each country and there is a BADI. If country key is defined as filter value you can implement same BADI for each different country and differemt implementation will run in all different countries.
But as you can see it is not always necessary. Functionally you may not need to implement your BADI more than one times. It can be enough to use only one implementation.
Regards,

Similar Messages

  • Can Single Use standard BADI be converted to Multiple Use

    Is it possible to make standard BADI a Multiple Use when it is single use?
    I hope it is not.
    Please confirm.
    Thanks,
    Arshad

    Hello Arshad
    If a BAdI is defined as single-use (SE18) then you can have only a single active implementation within the system. Thus, the answer to your question is: No, it is not possible.
    However, there may be the reverse situation where you have a BAdI defined as single-use but would like to have multiple implementations. In this case you have to adjust the single active implementation and instantiate other implementations if certain conditions are fulfilled, e.g.:
    <b>Active</b> implementation of a BAdI should be: ZCL_MY_BADIIMPL_01
    You create a second implementation (<b>not active</b>): ZCL_MY_BADIIMPL_02
    Within the methods of ZCL_MY_BADIIMPL_01 you could code:
      DATA:
        lo_badi2    TYPE REF TO <BAdI interface>.
      IF ( <condition is fulfilled> ).
        CREATE OBJECT lo_badi2 TYPE ('ZCL_MY_BADIIMPL_02').
    *   Call methods of second BAdI implementation
      ENDIF.
    Regards
      Uwe

  • Error out from MB01 and MIGO when using BADI "INSPECTIONLOT_UPDATE"

    Hi all:
    We are currently implementing Quality Level with Dynamic Modification Rule using SAP Quality Management module.
    We are trying to change stage level by modifying the field PRSTUFENAE of the table QDQL (Material Quality Level) using BADI: INSPECTIONLOT_UPDATE, new logic is successful for a goods receipt with a single lot if we use COMMIT WORK within BADI, but an error occurs from MB01 and MIGO when we are receiving multiple lots in same goods receipt.
    Have anyone else got across something similar?
    Thank you in advance,
    Regards
    Daniel Guillen

    Hi Paul,
    First of all, there is a How To Guide for RUNLOGIC implementation. It uses BAdI approach as well, but doesn't call WRITE_BACK that can change from version to version.
    Second, you should be able to see that method GET_DELTA is being called under
    IF D_CALC_DELTA eq abap_true and df_bw_delta eq abap_false.
    D_CALC_DELTA is set to TRUE only in Method WRITE_BACK_INT; I hope you aren't using that one.
    DF_BW_DELTA is taken from DM Package parameters. Can you check what you have there or put just a break-point in PACKAGE_LOGIC_1 to see what value those 2 variables have?
    Hope this helps,
    Gersh

  • Multiple use badi

    hi guru,
    i am new in  abap,
    if we have 20 badi's using multiple implimentation.which one trigger first.it is necessary to deactive all badi before running new badi name of some single use ,multiple,filter dependent badi in crm.

    Hi,
    As per my understanding, your query is this - for a single BAdI there might be multiple implementation and which one will be triggered first.
    As per SAP, there is no guarantee of the order of the call of the BAdI Implementation, but only thing that can be guaranteed is that all the active implementation will be called. You don't need to deactivate any Badi before implementing your BAdI.
    I hope this answers your question.
    Some important BadI's of SAP CRM are - ORDER_SAVE, COM_PARTNER_BADI, etc.
    Thanks,
    Samantak

  • [Enhancement in BW]: How to use BaDI : RSU5_SAPI_BADI

    Hi Everybody,
    Right now, could you kindly please tell me how to i use customer exit but using BADI, particularly for BADI : RSU5_SAPI_BADI.
    <b>I just wanna use the customer exit on variable (variable user-exit).</b>
    So far i've tried these steps (might you correct me/advise):
    1. tcode : SE18
    2. Enter the Badi Name : RSU5_SAPI_BADI
    3. (Toolbar) enhancement implementation -> Create
    4.  ... (After that i don't know what i've to do ..)
    Could you tell me step-by-step to make it ?
    Such as what i should fill-in for Implementation Name and any parameter should i fill in there and how to debug it ???
    Many-many thanks all for the attention.
    Hopefully i can make it :).
    Kind regards,
    Niel.

    Check out this link:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3001894b-b1fb-2910-77ba-e80b6f2053b7">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3001894b-b1fb-2910-77ba-e80b6f2053b7</a>

  • Custom Screen using BADI seen in ME23N, ME22N Display, but not in ME21N

    Hi,
    I have developed a custom screen for purchase order using badi ME_PROCESS_PO_CUST and ME_GUI_PO_CUST.
    But, its not visible in ME21N, whereas its dipalyed in ME23N, ME22N .
    Please advise.
    Thanks,
    Shivaa....

    In TC CMOD you can create a new proyect and use the component MEREQ001 with this component you can see adicional tab in those TC.

  • How can I tell if my software licence is a Family Pack or Single use?

    I need to work out which licence I have as my daughter has a Mac Book.  Her school provided her with iWork but take it off when she leaves in a month or so.  If I have the Family Pack I can load Pages, Keynote etc, but not if I only have Single use.

    If you still have the box or electronic receipt you could call your closest Apple Store and give them the serial # or model # and they can check it. Do you remember what you paid? Also, there are no longer any Family Packs with Lion, but I see your sig says Snow Leopard.

  • Display error message in WEBUI using BADI - ORDER_SAVE-CHECK_BEFORE_SAVE

    Hi,
    I am trying to display error message using BADI - ORDER_SAVE (Method-CHECK_BEFORE_SAVE) based on certain conditions when the document is saved from WEB UI.
    I have written it like below:
    If (some conditions).
    Message E000 with 'Error in SAVE' RAISING DO_NOT_SAVE.
    endif.
    I mentioned my message class everything in class, and it is fine.
    However, it is not displaying my error message. It is displaying standard information message saying "Document Could not be saved'.
    Could you please help me out, how can I display my custom message.
    Thanks,
    Sandeep

    Hi Sandeep,
    U can use FM to raise a message from order save badi.
    Inside the if condition, u can raise do_not_save.
    If (some conditions)
          CALL FUNCTION 'CRM_MESSAGE_COLLECT'
            EXPORTING
              iv_caller_name = 'ORDERADM_H'
              iv_ref_object  = iv_guid
              iv_ref_kind    = 'A'
              iv_msgno       = '000'
              iv_msgid       = 'zcrm'
              iv_msgty       = 'A'
              iv_msgv1       = c_text1
              iv_msgv2       = c_text2
              iv_msgv3       = c_text3
            EXCEPTIONS
              not_found      = 1
              appl_log_error = 2
              OTHERS         = 3.
          IF sy-subrc NE 0.
          ENDIF.
          RAISE do_not_save.
    ENDIF.

  • Restrict creation of appraisals for inactive employees using BADI

    Please could someone guide or assist me.
    When we use Tx APPCREATE to create an appraisal for an employee, it allows us to create an appraisal for an inactive employee. When we drop down the appraisee field (search for the appraisee), we can view & select employees that are inactive.
    I would like to exclude the inactive employees from the appraisee list.
    I have tried to use BADI HRHAP00_TMPL_RESTR, and created an implementation, but it doesn't seem to be called when i created the appraisal, i have tried debugging it to see if i get out to this badi, but no luck.
    Any help in this regards will be greatly appreciated.
    Regards,
    Chantal

    Hi Chantal
    As far as I know, you are using the right BADI for your requirement. Can you plz. try creating appraisal documents through PHAP_CREATE_PA or PHAP_PREPARE instead of APPCREATE Tcode.
    BTW, have you incorporated the BADI (filter) to your appriasal template?
    Hope this helps
    Best Regards
    Reddy

  • What are most commonly used BADIs for Opportunities and BPs?

    Dear all,
    What are mostly used BADI's for Oppotunity Management and Business Partner Maintenance, and what is the use of those BADIs.
    what is the use of BAPI's in CRM, suggest me BAPI names and their usage
    Your suggestions will be highly appreciated
    Best wishes
    Raghu ram

    Hi Hari,
    the variable which has to be created depends on the business requirement and differs based on the report requirement.
    for more informatrion on variables you can refer to following docs,
    characteristics variables
    http://help.sap.com/erp2005_ehp_02/helpdata/en/5c/8db08a555411d189660000e829fbbd/frameset.htm
    text variables
    http://help.sap.com/erp2005_ehp_02/helpdata/en/5c/8db0a4555411d189660000e829fbbd/frameset.htm
    formula variables
    http://help.sap.com/erp2005_ehp_02/helpdata/en/5c/8db0b1555411d189660000e829fbbd/frameset.htm
    http://help.sap.com/erp2005_ehp_02/helpdata/en/5c/8db0a4555411d189660000e829fbbd/frameset.htm
    :->
    NM

  • Added custom screen in PO using BADI ME_GUI_PO_CUST and ME_PROCESS_PO_CUST

    Hi All,
    I have added custom screen with two z fields at item level using BADI ME_GUI_PO_CUST and ME_PROCESS_PO_CUST i can see my screen in tcodes ME21N , ME22N , ME23N but I am not able to save data.
    and also screen is coming in change mode even in ME23N .
    thanks.

    Hi,
    I have added two xfields at item level.
    This is the code i have added in zimplementation ZME_GUI_PO_CUST .
    IN Zimplementation ME_PROCESS_PO_CUST I have added code only in method FIELDSELECTION_ITEM . after doing this I can see only screens in ME21N, ME22N, ME23N but when enter data in zfields and trying to save it is giving me message no data has changed.
    method IF_EX_ME_GUI_PO_CUST~SUBSCRIBE.
    DATA: ls_subscriber LIKE LINE OF re_subscribers.
    we want to add a customer subscreen on the item detail tab
      CHECK im_application = 'PO'.
      CHECK im_element     = 'ITEM'.
    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 = 'SAPLYMEPOBADIEX'.
    each subscreen needs his own DDIC-Structure
      ls_subscriber-struct_name = 'MEPO_BADI_STRUCT'.
    a label can be defined
      ls_subscriber-label = text-001.
    the position within the tabstrib can be defined
      ls_subscriber-position = 4.
    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.
      ENDIF.
    method IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_MODEL.
      DATA: l_item       TYPE REF TO if_purchase_order_item_mm,
            ls_mepoitem  TYPE mepoitem,
            ls_customer  TYPE mepo_badi_exampl.
    system asks to transport data from the business logic into the view
      CASE im_name.
        WHEN subscreen1.
    is it an item? im_model can be header or item.
          mmpur_dynamic_cast l_item im_model.
          CHECK NOT l_item IS INITIAL.
    transport standard fields
          ls_mepoitem = l_item->get_data( ).
    transport customer fields
          CALL FUNCTION 'YMEPOBADIEX_GET_DATA'
            EXPORTING
              im_ebeln = ls_mepoitem-ebeln
              im_ebelp = ls_mepoitem-ebelp
            IMPORTING
              ex_data  = ls_customer.
    store info for later use
          MOVE-CORRESPONDING ls_mepoitem TO dynp_data_pbo.
          MOVE ls_customer-badi_bsgru TO dynp_data_pbo-badi_bsgru.
          MOVE ls_customer-badi_afnam TO dynp_data_pbo-badi_afnam.
        WHEN OTHERS.
      ENDCASE.
    endif.
    method IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_DYNP.
      CASE im_name.
        WHEN subscreen1.
          CALL FUNCTION 'YMEPOBADIEX_PUSH'
            EXPORTING
              im_dynp_data = dynp_data_pbo.
        WHEN OTHERS.
      ENDCASE.
    ENDIF.
    endmethod.
    method IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_DYNP.
      CASE im_name.
        WHEN subscreen1.
          CALL FUNCTION 'YMEPOBADIEX_POP'
            IMPORTING
              ex_dynp_data = dynp_data_pai.
          IF dynp_data_pai NE dynp_data_pbo.
    something has changed therefor we have to notify the framework
    to transport data to the model
            re_changed = mmpur_yes.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
    ENDIF.
    endmethod.
    method IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_MODEL.
    DATA: l_item       TYPE REF TO if_purchase_order_item_mm,
            ls_mepoitem  TYPE mepoitem,
            ls_customer  TYPE mepo_badi_exampl.
    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_item im_model.
          CHECK NOT l_item IS INITIAL.
          ls_mepoitem = l_item->get_data( ).
    standard fields changed?
         IF dynp_data_pbo-matkl NE dynp_data_pai-matkl OR
            dynp_data_pbo-plifz NE dynp_data_pai-plifz OR
            dynp_data_pbo-webaz NE dynp_data_pai-webaz.
    update standard fields
           ls_mepoitem-matkl = dynp_data_pai-matkl.
           ls_mepoitem-plifz = dynp_data_pai-plifz.
           ls_mepoitem-webaz = dynp_data_pai-webaz.
            CALL METHOD l_item->set_data( ls_mepoitem ).
         ENDIF.
            CALL FUNCTION 'YMEPOBADIEX_GET_DATA'
              EXPORTING
                im_ebeln = ls_mepoitem-ebeln
                im_ebelp = ls_mepoitem-ebelp
              IMPORTING
                ex_data  = ls_customer.
            ls_customer-badi_bsgru = dynp_data_pai-badi_bsgru.
            ls_customer-badi_afnam = dynp_data_pai-badi_afnam.
            CALL FUNCTION 'YMEPOBADIEX_SET_DATA'
              EXPORTING
                im_data = ls_customer.
         ENDIF.
        WHEN OTHERS.
      ENDCASE.
    ENDIF.
    method IF_EX_ME_PROCESS_PO_CUST~FIELDSELECTION_ITEM.
    DATA: l_persistent TYPE mmpur_bool.
    CONSTANTS:
    FIELD-SYMBOLS: <fs> LIKE LINE OF ch_fieldselection.
    l_persistent = im_item->is_persistent( ).
    *IF l_persistent EQ mmpur_yes.
    READ TABLE ch_fieldselection ASSIGNING <fs> WITH TABLE KEY
                         metafield = MMMFD_YYMAN_NUM."fd_cust_01.
    IF sy-subrc IS INITIAL.
    <fs>-fieldstatus = '*'. " Display <-- this one was as per the sample code given.
    <fs>-fieldstatus = '+'. " Input <-- this i added to make the field mandatory.
    ENDIF.
    READ TABLE ch_fieldselection ASSIGNING <fs> WITH TABLE KEY
                         metafield = MMMFD_YYMAN_DES."fd_cust_01.
    IF sy-subrc IS INITIAL.
    <fs>-fieldstatus = '*'. " Display <-- this one was as per the sample code given.
    <fs>-fieldstatus = '+'. " Input <-- this i added to make the field mandatory.
    ENDIF.
    *ENDIF.
    ENDIF.
    endmethod.

  • Customer screen using BADI :  ME_GUI_PO_CUST

    Hi
    I am implementing BADI : ME_GUI_PO_CUST to create custom screen at item level.
    Pls tell me the steps to be followed to get custom screen using BADI
    Thanks
    Vinay.

    Hi Vinay,
    go to transaction SE18, then enter your BADI.The in menu go to Goto -> Sample Code -> Display. You will see example of implementation of this BADI. All these examples are very well commented. Basically you will have to create your own function group with your new screen and call this screen from methods of BADI.
    Cheers

  • How to determine the purchasing group using BADI BBP_PGRP_FIND

    Hello Friends
    We use SRM Server 5.5 (Classic scenario).
    As you know that, purchasing group has the responsible product categories in PPOMA_BBP, when user creates the shopping cart to determine the purchasing group. 
    In our case, we should determine the purchasing group using other criteria.
    MM side is OK to determine the purchasing group using specific criteria.
    Because Material Master has the purch. Group information. 
    In case of SRM, we should develop the logic using BBP_PGRP_FIND BADI.
    But I’m not sure how to use this badi.
    We want to determine the purchasing group based on the following logic.
    If described shopping cart without product ID
    Do Standard purchasing group determination logic.
    Else
    Assign the purch group from MARC- EKGRP (Purchasing Group)
    Is it possible to determine above the logic?
    If yes, Could you give me some information?
    Thank you,
    Best regards,
    SH
    Message was edited by:
            So Hee Lee

    Thank you for your answer.
    I found the way to develop the our logic using BADI: bbp_pgrp_find.
    But I’m not sure the following logic is correct.
    To differentiate described req. or product id req, We check the E_ITEM – PRODUCT using BBP_PD_SC_GETDETAIL.
    IF E_ITEM – PRODUCT is blank, Read the category ID to find the purchasing group.
    To find the purch. Group, we can use FM:  BBP_OM_DETERMINE_RESP_PGRP.
    Import parameter: IS_RESP_ITEM_DATA – Category _ID
    Export parameter: ES_PURCH_DATA
    ELSE
    CALL the customer function to read the R/3 purchasing group from MARC- EKGRP
    Search the HRT5500-TABNR using purchasing group from R/3.
    Search the HRP5500 – OBJID using HRT5500-TABNR
    Call the FM:  BBP_OM_DETERMINE_RESP_PGRP
    Import parameter: IS_RESP_ITEM_DATA – PROC_GROUP – OBJID
    Export parameter: ES_PURCH_DATA
    Thank you
    Best Regards
    SH

  • USING BADI TO ADD A TAB IN PURCHASE ORDER

    FRIENDS,
    CAN ANYONE SEND ME THE DOCUMENT OR WHOLE PROCEDURE FOR ADD EXTRA TAB AND FIELD IN PURCHASE ORDER  USING BADI.I AM DOING THIS FIRST TIME, SO IF SOME ONE HAVE WHOLE DOCUMENT FOR THIS , PLEASE SEND ME OR ELSE SUGGEST ME THE SOLUTION.

    Hi ,
    Please find these two BADi's which will be useful to you.
    ME_GUI_PO_CUST and MEGUI_LAYOUT
    <b>Reward points</b>
    Regards

  • How to insert new row in MIGO using badi.

    hi,
    Transaction code: MIGO. i'm using badi "MB_MIGO_BADI" and method "LINE_MODIFY", i want to insert N number of item lines when user entered any production order no. and press enter.
    Notes: production order has only one item line with qty N.
    regards,
    Shahid Rais

    Such a feature is not available, but you could add a key event handler which works its magic when it detects a press on the down arrow key, while the last row is selected. Then you can perform the code to insert a new row.

Maybe you are looking for

  • Open a JFrame from an applet

    I have an applet in which I have a JButton. When you click the button, I want a new window to open with a JFrame. Is that possile? I've written as follow but nothing happens when I click the button. 1. In the applet, I've written: public class MyAppl

  • Working with raw photos

    I just got Photoshop CS6 and it will not open up my raw photos, and I do not see a Camera Raw program to open even it is a choice in the Bridge?

  • Thread pool + multiple work queues

    Hi, I guess the problem I am facing is pretty common but I don't know what's the best pattern for this. I have multiple queues. Queue element is "Runnable". The requirement is that "Runnable"s inside the same queue must be run serializely. I want to

  • Trouble with AirTunes - conflicting channel noise?

    Hi there I have just bought an Airport Express with AirTunes. The device works great - but thus far I have only been able to successfully play music on the network it creates - I haven't been able to use WDS or get it to join a network and still stre

  • Restrict sms / imessage reply from lock screen

    I recently am new to the ios platform from Android, and the one thing that bothers me, is i have security set on the iphone - running ios 8. I see the message on the lock screen, but I am able to reply without having to unlock my phone. is there a wa