COM_PARTNER_BADI

Hi All,
I am implementing the BADI for partner determination.
I am using the Method 'DETERMINATION_ADD_IN_2'.
When I enter sold-to-party and press enter this method triggers.
I thought i can pass the partner functions to the export parameter of this method'ET_FOUND_PARTNERS'. i tried but it didnt work.
How would i do the partner determination from here. Do i have to use any Function module? Could some one help me out with this pls.
Thank you.
Yash.

You will have to check if the BADI interface has a parameter 'return' which it returns to the program. You can then populate this return table with the Error message you want to issue, to stop the execution.
It is not possible to directly issue an error message inside a BADI.
Hope this helps.
Sudha

Similar Messages

  • COM_PARTNER_BADI is not trigger during CHANGE

    I can determine the Manager partner function by using BADI COM_PARTNER_BADI method DETERMINATION_ADD_IN_1. However, if the user changes the partner function, Manager need to be redetermined. The problem is, This BADI is not getting triggered during Change. Please let me know if i am missing something...Thanks.

    Please check the below documentation:
    Partner Redetermination Using this function, you can manually trigger the partner determination procedure from within a business transaction, such as lead or opportunity, and redetermine all parties, such as contacts, employees, and other partners, involved in the transaction. This enables you to ensure that the correct parties are identified and associated with a transaction This might be necessary because partners determined originally, based on a partner determination procedure, are no longer up-to-date. You might have switched to new partners, for example, which in turn might require changes to all dependent partner functions. Prerequisites u2022 You have set up the partner determination procedure appropriately. You do this in Customizing for Customer Relationship Management, by choosing Basic Functions Partner Processing Define Partner Determination Procedure . u2022
    You have activated the enhancement implementation ES_CRM_SET_ACTIVE of the enhancement spot ES_CRM_PARTNER_REDETERMIN.
    You have to set the parameter value X for the user parameter CRM_REDETERMINATION
    Note Partner redetermination is only possible for those business objects listed in the table COMS_PARTNER_DET. Features You can start partner redetermination manually from the overview page of a lead or opportunity.
    Depending on your Customizing settings, partners are redetermined as follows:
    No Redetermination The partner functions in the partner determination procedure that have this value are not changed. All existing partners remain, with no new partners of the given partner function being determined or added to the partner set. Similarly, any existing partners are not replaced.
    Add New Partners The partner functions in the partner determination procedure that have this value are redetermined. All existing partners remain and any new partners determined based on the partner function are added to the partner set. Before a new partner is added to the set, the system checks whether the same partner with the same partner function already exists. If this is the case, the newly determined partner is not added to prevent a duplicate entry. The system indicates when the maximum number of partners has been reached.
    Replace Existing Partners The partner functions in the partner determination procedure that have this value are redetermined. All existing partners of the given partner function, irrespective of whether they were entered manually or determined automatically, are discarded and the newly determined partners with the given partner function are added to the partner set. The system indicates when the maximum number of partners has been reached.
    Note A partner might be replaced by the same partner. However, if the partner previously had any notes, these will be lost. u2022 Buying Center All partners in the buying center are partner functions of the partner function category Contact Person. If redetermination is allowed for partner functions of this category, this affects the buying center as follows: o Where new partners are added, newly determined partners are shown but without any characteristics, relationships to other partners, or relationship characteristics. o Where existing partners are replaced, the buying center partners of a given partner function are replaced completely, resulting in not only the partner being deleted, but also the associated characteristics, relationships to other partners, and relationship characteristics. Note
    If partner determination has been blocked in Customizing for the partner determination procedure, redetermination does not take place for this partner function, irrespective of the settings made for partner redetermination. u2022 Partner functions that are not part of the partner determination procedure are unaffected by redetermination. u2022 If redetermination is performed, territory determination also takes place. However, there is no organizational data determination, or price and free goods determination.

  • BADI COM_PARTNER_BADI

    Hello experts
       I am trying to implement the BADI COM_PARTNER_BADI for determining Sold-to Parties from different Partner functions in a preceding document. But I notice that if I implement this, it only works when the Contact Person, Employee Responsible or Person Responsible is determined. Why is this so? Do I miss a setting?
    Regards,
    Sowmiya

    I hope the following pointer code in DETERMINATION_ADD_IN_2 method helps you
    *1. Partner comes from SC header (sales rep at the item level is assumed in BADI BILL_ACC_IF)
          call function 'CRM_PARTNER_READ_OW'
            exporting
              iv_ref_guid          = lv_sc_guid
              iv_ref_kind          = 'A'
              iv_partner_fct       = is_determination_step-partner_fct
              iv_mainpartner_only  = 'X'
            importing
              es_partner_wrk       = ls_partner_external_wrk
            exceptions
              error_occurred       = 1
              parameter_error      = 2
              entry_does_not_exist = 3
              others               = 4.
          if sy-subrc eq 0.
            ls_found_partners-partner_number = ls_partner_external_wrk-partner_no.
            ls_found_partners-display_type   = 'BP'.
            ls_found_partners-no_type        = 'BP'.
            ls_found_partners-default_partner = 'X'.
            insert ls_found_partners into table et_found_partners.
          endif.
        else.
    * 2. The other partners come from the schedule items
    * first find out if this is a new item or comes from a change process.
          call function 'CRM_PARTNER_GET_DECOUPL_VALUES'
            importing
              ev_ref_object = lv_ref_object
              ev_ref_kind   = lv_ref_kind.
          if lv_ref_kind eq 'B'.
            lv_pred = 1.
            call function 'CRM_CAI_PREDECESSOR'
              exporting
                iv_guid   = lv_ref_object
                iv_pred   = lv_pred
              importing
                ev_guid   = lv_pred_guid
                et_return = et_return
              exceptions
                failed    = 1
                others    = 2.
    * if there is no predecessor then it's the current item
            if sy-subrc ne 0 or lv_pred_guid is initial.
              lv_pred_guid = lv_ref_object.
              lv_chng_process = 'NEWL'.
            endif.
    *read predecessor item details
            call function 'CRM_ORDERADM_I_READ_OW'
              exporting
                iv_guid                       = lv_pred_guid
    *         IV_INCLUDE_DELETED_ITEM       = ' '
              importing
                es_orderadm_i_wrk             = ls_orderadm_i
              exceptions
                item_not_found                = 1
                others                        = 2
            if sy-subrc <> 0.

  • Get Complaint info in COM_PARTNER_BADI

    Hi Experts,
    I am implementing the BAdi for definition COM_PARTNER_BADI .
    I need to get the complaint information such as product etc in this BAdi. Is there any to get this ?
    Pls advise.
    Thanks.
    R.

    Hello Rohita,
    Are you asking us, What the method or code or Formula to be implemented in this BADI?( getting Product information etc)
    Or
    Are you asking us Can this be done through this BADI?
    What is that, you would want to know?
    regards,
    Muralidhar Prasad Chatna

  • Badi in standard tranction BP in  CRM module

    Hi,
    i have to impliment badi in tranction BP, for field postal code and city i have to valdidate this 2 fields can u help me to know which badi i have to use and in which
    interface i have to use this,
    thanks,
    Tanveer

    hi sonali
    this is the normal problem faced with the BADI which u r using,yeah it will definitelty give u solution but some ifs and buts are there
    just refer the note 663905
    also try using BAdi COM_PARTNER_BADI
    but i should tell you that
    COM_PARTNER_BADI is for business transactions, not for BP creates/changes. BUPA_FURTHER_CHECKS is usable for customer checks and it provides all of the customer information in the BADI interface, but it's only called by the BP BAPIs, not by the BP transaction.
    For BP updates at create/change save time, the BUPA_UPDATE BADIs need to be used. The interface only provides the GUID of the not yet created BP or the GUID of the changed BP, not a bunch of parameters that you can change before save. However, you can call the BUPA_CALLBACK series of function modules to get the info you need about the BP, and use a field symbol to directly access the data in the memory stack i.e., (SAPLBUD0)MEM_BUT000[] and change the values. I am using this technique to add an authorization group to certain BP type at create save time.
    best regards
    ashish

  • Partner determination rules in sales documents

    Good afternoon Experts
    I'm trying to determine responsible agents in a quotation document by using a rule with responsibilities
    ( in the access sequence of the responsible agent partner function). 
    Could someone please confirm how the rule container gets filled?  
    If the rule is based on a post code my understanding is that the post code of the sold
    to party is passed to the rule container and the responsible agent gets
    determined. Passing the post code to the rule container should be in this case hardcoded.
    What happens though if I need to determine the responsible agent based on another
    piece of information like "sales order type", "client tax classification" .
          -  How does the system know how to fill the rule container?
         -   Do  I need to create a new organizational attribute ? 
    On Sap help I've found :
    "If you use rule resolution using responsibilities, you do not have to assign
    attributes in the organizational model, other than the attributes distribution
    channel and division; these are necessary for showing the sales area."
    Where does the sales area come in for partner determination when using rules with responsabilities ? Is there a mechanism like sold to party/document -> sales area -> organisational attribute => attribute passed to rule container? 
    Any input would be appreciated.
    Best regards
    Razvan Zainea 

    Hi Razvan,
    you can use rules in your partner determination access sequence. Most attributes are filled in document processing for the rule container.
    You mentioned postal code. This is filled from the main partner of the document. The main partner of a sales order is the sold-to party, of an opportunity is the prospect, ....
    If you like a different main partner you can do this via process type customizing (field 'partner function ORG').
    If you need to fill your own container values you can use CRM_ORGMAN_BADI method CRM_ORGMAN_ATTRIB_VALUE_FILL.
    Or as mentioned by Shanto you can use your own logic with COM_PARTNER_BADI.
    Best regards
    Marion

  • BADI in transaction BP

    Hi All,
    I need to check for certain data changes before saving a business partner using transaction BP in CRM. If there are any unwanted changes I need to throw an error and should not allow to change the business partner using transaction BP.
    For this purpose I found BADI BUPA_FURTHER_CHECKS and implemented the BADI method  CHECK_CENTRAL. I have put a break-point in the method but it doesn't stop.
    I have activated the implementation of  the method and BADI but still doesn't work.
    Has anyone successfully implemented this BADI? or is there is any other BADI to solve my problem?
    Please let me know if anyone has answers.
    Points will be rewarded.
    Thanks in advance.
    Sonali.

    hi sonali
    this is the normal problem faced with the BADI which u r using,yeah it will definitelty give u solution but some ifs and buts are there
    just refer the note 663905
    also try using BAdi COM_PARTNER_BADI
    but i should tell you that
    COM_PARTNER_BADI is for business transactions, not for BP creates/changes. BUPA_FURTHER_CHECKS is usable for customer checks and it provides all of the customer information in the BADI interface, but it's only called by the BP BAPIs, not by the BP transaction.
    For BP updates at create/change save time, the BUPA_UPDATE BADIs need to be used. The interface only provides the GUID of the not yet created BP or the GUID of the changed BP, not a bunch of parameters that you can change before save. However, you can call the BUPA_CALLBACK series of function modules to get the info you need about the BP, and use a field symbol to directly access the data in the memory stack i.e., (SAPLBUD0)MEM_BUT000[] and change the values. I am using this technique to add an authorization group to certain BP type at create save time.
    best regards
    ashish

  • Custom search in the Customer Interaction Center

    I have a somewhat unique custom requirement in CIC. The user wants to go to our custom Alta Vista search upon pressing enter when either the name or phone number field is populated. We have a search that is activated only when the CSEARCH_SEARCH button is pressed and the name and phone number fields are not entered, however the new requirement is to capture what was entered in the name or phone number fields when specifically the enter key is pressed and execute the function module behind custom search with these fields pre-populated.
    I was look for a BADI with a method that both is executed when enter is pressed and exposes these two fields. As well I would need to bring back the returned customer from the search into CIC. I've played around with implementations of COM_PARTNER_BADI, CRM_IOBJ_CIC_BADI, and CRM_ISM_CIC_LOCATOR with no luck. Is anyone aware of a BADI or some other technique that will fullfill my requirements?
    Thanks in advance,
    Tony Dagnillo
    847 535-4406

    Hi Santiago,
    I've exactly your same problem... have you solved it?
    Thanks in advance
    Regards
    Lara

  • Exception 'NOT_ALLOWED'.

    Hi,
    I wrote 'COM_PARTNER_BADI' so stop creating orders against a PROSPECT. When a user enters a PROSPECT in standard order i am prompting the user saying 'Orders cannot be created against PROSPECT' in the status bar thru this BADI. It is working fine. After the user hits enter the control is waiting in sold-to text box to re-enter the customer. When i enter the customer correctly the program 'CRM_ORDER_MAINTAIN_MULTI_OW' gives system dumps with 'Message_type_x' because the recursive counter is not substracted and with the next call of.
    I was suggested to raise the exception NOT_ALLOWED in by BADI so that the calling program can catch the exception.
    I am new to programming. Could any please suggest how do i implement this BADI in my code to avoid the DUMP?
    The following is my code in COM_PARTNER_BADI.
    method IF_EX_COM_PARTNER_BADI~COM_PARTNER_CHECK.
      Data: ls_partner_wrk        TYPE COMT_PARTNER_WRK,
            ls_input_fields       TYPE COMT_PARTNER_INPUT_FIELD_NAMES,
            ls_partner_control    TYPE COMT_PARTNER_CONTROL,
            partner_no            TYPE CRMT_PARTNER_NO,
            process_type          TYPE CRMT_PROCESS_TYPE,
            zlv_bu_group           TYPE BU_GROUP.
      ls_partner_wrk        = IS_PARTNER_WRK.
      partner_no            = IS_PARTNER_WRK-partner_no.
      ls_partner_control    = IS_PARTNER_CONTROL.
      process_type          = ls_partner_control-process_type.
      If process_type = 'TA' OR  process_type = 'LP' OR  process_type = 'ZD'.
          select single bu_group from BUT000 into zlv_bu_group where PARTNER_GUID =  partner_no.
          if zlv_bu_group = 'CZ05'.
            if sy-subrc = 0.
               MESSAGE E008(ZZ).
            endif.
          endif.
      endif.
    endmethod.
    Thank you very much,
    Karuna.

    Hi Vicky,
    I have the same problem with logical attribute "passwordchangerequired", and don't understand how to set up value true instead of value false.
    If you resolve it let me me know how.
    Thanks in advance
    Dmitriy

  • Action profile for Business Partners

    Dear SAPers,
    Currently Action profile, can be easily set-up for Business transactions (Opp, Activity,etc.).
    Examle: When Opp status is changed (schedule condition, start condition), Business Parnter attribute is adapted (Execution).
    Does anyone know if Action profile can  be set-up for Business Partner?
    Examle: When BP is changed (schedule condition, start condition), Business transaction attribute is adapted (Execution).
    In standard, it does not look possible.
    Should it be possible from Business Parnter BADI (check_before_save) to generate the schedule condition of a set of Business transactions e.g Opp.
    Thanks for any help.

    Hi Marc,
    Yes. As of today you can customize the Action Profiles to trigger actions for Business Transactions only. This is not available for the Business Partners. So, your approach of Business Partner BADI sounds a very reasonable solution to achieve the functionality.
    And for the Business Partner BADI that you mentioned here I was unable to find any such BADI in SAP CRM 7.0 system. Can you let me know from which system you got that BADI name?
    I got a BADI of BP - COM_PARTNER_BADI. Can you have a look at the implementations of it so as to have a understanding of it's usage.
    Hope this helps.
    Thanks,
    Samantak.

  • Need help on my requirement...

    Hello Experts,
    I am experimenting with BADI 'COM_PARTNER_BADI' and 'CRM_PRICING_BADI' for transaction CRMD_ORDER. My requirement is this,
    I need to check the customer classification of the given customer and if it falls as '09', then I
    need to bypass all the condition exclusion for its pricing procedure.Hope you can help me guys.
    Thank you and take care!

    No answer...

  • Additional Tab in CRMD_BUS2000126 using EEWB

    Dear Experts,
    I have successfully created an additional tab in Maintain Activities using EEWB. The fields display. I can write to them and read from them just fine. Now the user wants the new tab to display conditionally. In our case, the display of the tab should be based on values in the Business Transaction Type field (COMT_PARTNER_CONTROL-PROCESS_TYPE). Even if this field is not part of any relevant method signatures, I could pass it via memory if I new how and where to do so. We do have an implementation of COM_PARTNER_BADI where we interegate this field in method DETERMINATION_ADD_IN_1. Could I somehow leverage this?

    hi,
    i hope u want to display ur tab for a particular transaction type.
    for that u can use the concept of transaction variant (the setting is available in spro Transactions>Basic Settings>User Interface Settings-->Assign Transaction Variants to Transaction Types).Using tansaction variant u can hide the tab for other transaction type.
    if helpful reward me

  • Employee determination on the basis of Org.Unit

    Hi expert,
    I'd like to retrieve the employee responsible for a task from the organizational unit:
    In the business scenario i've a person that, for each org unit, is in charge to fulfill this task; the expected behaviour would be that while creating a task, the employee responsible is automatically filled with the person, that for the identified org unit, is responsible.
    I've set the access sequence "0009: organizational data employee for an organizational unit." in correspondence of the partner function Employee responsible; Now i don't know how to link that person to the org unit. Do i have to use position before?
    Regards
    C

    Carmine,
    You would need to create a new access sequences based on organizational data.  Then you would also need to use a organizational data determination rule to determine which org unit/position should be used in the sequence.
    If this can't work, then you need to implement the partner determination BADI (COM_PARTNER_BADI) to build your source determination logic so that it meets your needs.
    Good luck,
    Stephen

  • BADI application in CRM

    Hi Experts,
    I have see the usage of BADI in several occasion,
    in which areas the BADI is been used frequenlty.
    wat can be the application of BADI in webui
    Thanks & regards
    Prajith P

    most Common BADI in CRM
    ORDER_SAVE
    CRM_OPPORT_H_BADI
    CRM_ORDER_STATUS
    CRM_COPY_BADI
    EXEC_METHODCALL_PPF
    COM_PARTNER_BADI
    CRM_ACTIVITY_H_BADI
    CRM_CHNGPROC_H_BADI
    CRM_CLA_H_BADI
    CRM_CUSTOMER_H_BADI
    CRM_FUND_H_BADI
    CRM_LEAD_H_BADI
    CRM_OPPORT_H_BADI
    CRM_ORDERADM_H_BADI
    CRM_SERVICE_H_BADI
    CRM_SRV_REQ_H_BADI
    CRM_UIU_BP_ENHANCEMENT
    BADI_CRM_BP_UIU_AUTHORITY
    BADI_CRM_BP_UIU_DEFAULTS
    BADI_CRM_BP_UIU_VIEWS
    CRM_BP_UIU_BT
    CRM_BP_UIU_CONFIG_CALLBACK
    CRM_BP_UIU_SAVE
    CRM_BP_UIU_VIEW_CONFIG
    CRM_PRODIL_UIU_BADI
    CRM_UIU_CT_INBOX_WF
    regard ,
    vijay.

  • ZCL_IM_COM_PARTNER_BADI - not breaking on break point.

    I have implementated a BADI but the methods
    IF_EX_COM_PARTNER_BADI~DETERMINATION_ADD_IN_1,
    and
    IF_EX_COM_PARTNER_BADI~DETERMINATION_ADD_IN_2,
    and
    IF_EX_COM_PARTNER_BADI~DETERMINATION_ADD_IN_3
    are not been called and when I but a break point inside IF_EX_COM_PARTNER_BADI~DETERMINATION_ADD_IN_3 it doesnt break during the creation of service oder.
    Kindly assist.

    fill in your batch sequence=10, dialog seq.=10 if it's the first access.
    If your source is COM_PARTNER_X, then go to se18, enter badi=COM_PARTNER_BADI.
    If you already created implementation, should find it under implementation menu -> overview and select your implementation. Otherwise, create a new one.
    Then go to interface tab and click on DETERMINATION_ADD_IN_1 method. Implement your source codes here. Put an external breakpoint for testing.
    Dont forget to assign your access sequence in the 'Partner function in proceudure' in partner determination procedure.
    Lastly, assign the partner determnation procedure to your service order trx.

Maybe you are looking for