CRM BADI CRM_COND_COM_BADI only called when line created or changed

I am trying to ensure that the BADI CRM_COND_COM_BADI is called (to adjust pricing communication structure) for all line items every time a user hits update or enter during creation of a sales order via the web.  In my testing I am finding that the BADI CRM_COND_COM_BADI only gets called during the creation of a line item or a change of a line item.
Does anyone know how I can have BADI CRM_COND_COM_BADI called for all line items every time update or order is clicked on the web during order entry?  Is there something I can set in config to make this happen?
Thanks,
Sarah.

Remo,
Even though this thread is very old and closed, but want to share my thoughts because we faced the same problem. We enhanced the BADI 'CRM_COND_COM_BADI' and was getting called multiple times.
As per our business scenario, it should be called for Opportunity and for a specific transaction type. So a check was placed in the BADI for the Opportunity and transaction type. This was done using FM 'CRM_ORDERADM_H_READ_OW'. This helped us to skip the complete logic to be called by the BADI enhancement.
If you found a better solution yet do share.
Regards,
Shyamak

Similar Messages

  • BADI  that is called when we create shopping cart

    Hi all,
    Can any one tell me the BADI that is called when we order a shopping cart.
    Thanks&Regards,
    Hari

    Hi
    For Business Object type - BUS2121, the SAVED event is triggered, once shopping cart is saved, using Standard SRM Workflow. 
    Refer to SAP transaction - SWETYPV (for Event linkages)
    When a user orders a shopping cart. This triggers the SAVED event, which starts the approval workflow. The system analyzes the start conditions in Customizing.
    There is information here on which workflow the system should start under which conditions. Each workflow represents an approval process (single-level or multi-level) or is defined in such a way that no approval is necessary.
    If approval is required, the system goes through the corresponding approval procedure. The user can meanwhile change or delete the shopping cart. The shopping cart can take on the following statuses:
    Not accepted
    Approved
    Deleted
    Changed
    You can further process a request via a subworkflow.
    If approval is not required, the system sets the status to Approved and immediately starts the subworkflow.
    Users receive a work item. Before the shopping cart can be further processed, they have to accept the rejection of items (or not, as the case may be).
    After the shopping cart is released, the system calls the spooler. This transfers the shopping cart to the backend system or creates a purchase order locally in the Enterprise Buyer system.
    This is how a workflow triggers.
    You want to start several Wf for one event ? Technically this is possible, but not recommended as you will loose some functionalities like the approval preview and maybe some related to the workflow restart: In SRM the system consider that only one workflow instance can be active at a time.
    For the approval preview, it get the last active version.
    For the worklow restart, the same.
    Select BOR object BUS2121 using SWO1 transaction.
    The whole list of shopping cart approval WF will be displayed.
    Please go through the related links as well ->
    Re: Activating workflow
    Re: Custom Workflow is not behave as like standard..
    How workflow is getting trigger when you click order
    can we have 'BUS2121' for multiple WF..
    Hope this will help. Do let me know.
    Regards
    - Atul

  • TreeNodesChanged only called when root changes

    Hi all, just a quick one,
    I have a JTree and TreeModel setup, and set up a tree model listener as follows:
    public void treeNodesChanged(TreeModelEvent treeModelEvent) {
            // The user has changed the name of a node
            System.out.println("TREENODES CHANGED");
    }But this only gets called when the root node is changed. When the other (leaf) nodes are changed (by changed, i mean double-clicking the node and changing the title of it in the tree GUI) everything goes through ok (my model is changed properly with setUserObject ), but treeNodesChanged doesn't get called... :-S
    Any hints?

    Post a small demo code that is generally compilable, runnable and could reproduce your problem. See: http://homepage1.nifty.com/algafield/sscce.html and/or
    http://riters.com/JINX/index.cgi/Suggestions_20for_20Asking_20Questions_20on_20Newsgroups

  • HT1311 I have two Apple IDs, one with all my purchases and info on it. The one with everything on it is under a bad email address. When I tried to change it to my current email, it tells me I already have an account. How do I fix this?

    I had an old iPod under an old Apple ID  which was stolen. I replaced it with an iPhone and apparently created a new Id under my current email address. When i went to sync the phone to my comuter (several months later), I accidentally restored the phone to my old iPod settings and lost everything.  I then continued to make purchases on the phone but didn't realize that it had reverted back to my old Apple ID. This is under an old email that I no longer have access to. When I tried to change the Apple ID/email address in the account settings, it won't let me because it says that there is already an Apple ID under this address. However, all my information (settings, contacts, photos, aps) are under an incorrect email. How can I change the account I have been using to reflect my valid current email address if there is already an existing account (which I never really used) under this address? Please, I don't want to lose all my info again.

    Change the email on the old account to another new, current email address.
    An email address can only be linked to one Apple ID.
    It is possible to have content from multiple Apple ID's on a single iDevice.

  • Profile in use, can't be accessed, FF only worked when I created a new profile, are bookmarks lost?

    My computer crashed, when I restarted it and restarted FF (6.0.12.1739, with google, adobe and similar plugins), I got the "already running" message.
    I use Windows 7.
    When I learned to look for the parent lock file, not only was it not there, but my original profile folder to be empty.
    So I created another profile folder, and now FF works, but I cannot access my old profile folder.
    When I open the location where it should be, nothing's there. But if I go to profile manager, I see my original profile '' is'' still there (and apparently it's where it should be). I tried typing its location in Start, to no avail.
    '''I tried making all folders visible,''' as some sites recommend for people who use Windows, but this did not make my old profile folder visible.
    Are my bookmarks lost for good?
    I have restarted the computer several times 'til now.

    I forgot to mention that I can't access my old profile, because whenever I click on it, I continue to get the "already running" message. I know that I exit FF when I access profile manager.

  • HR_IN_LOANS_VALIDATE badi is not called while infotype 45 is changed

    Hi all,
    I have activated badi:HR_IN_LOANS_VALIDATE implementation: ZHR_VALIDATE and its is working fine for creating Infotype 45 (INS) but when i change(MOD) it is not called. ie it does not enter the badi implementation code.
    please see if you can help me.
    thanks
    Ujjaval

    hi IA,
    I have tried different combination in SWEHR3
    E     Business event     1001     Relationships     A025     Is attended by     INS          0     PDOTYPE_E     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     INS     BOKF     0     PDRELA_025     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     INS     BOKP     0     PDRELA_025     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     INS     BOKW     0     PDRELA_025     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     INS     CNOW     0     PDRELA_025     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     INS     CPRB     0     PDRELA_025     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     UPD     BOKF     0     PDRELA_025     MODIFIED
    E     Business event     1001     Relationships     A025     Is attended by     UPD     BOKP     0     PDRELA_025     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     UPD     BOKW     0     PDRELA_025     CREATED
    E     Business event     1001     Relationships     A025     Is attended by     UPD     CNOW     0     PDRELA_025     CREATED
    i did same thing in SWEHR2....still no luck...
    please guide me if have any alternative options

  • Implicit validation only work when the InputField has changed

    Hi all,
    we're trying to implement implicit validation.
    When we define a DDIC type with minLenght 5 the inputfield is not automatically checked if the mapped value has the lenght of 5. The inputfield is only checked if the user changes it.
    Is there a trick archieving implicit validation even if the user didn't change any inputfield?
    Best regards,
    Christian

    Hi Christian,
    obviously my last answer was lost (i can't see it). SDN is little bit tricky these days. I repost it here:
    Hi Christian,
    no, it works as expected. Create a value node "TestNode" with an value attribute Name5 in the context. Name5's type is a SimpleType base string with MaxLength = 32, MinLength = 5. Add a supplyFunction to TestNode. Then insert the following code into the supply function (adapt the view name of course):
    StringBuffer sb = new StringBuffer();
    IWDAttributeInfo name5Info = node.getNodeInfo().getAttribute(IPrivateDTView.ITestNodeElement.NAME5);
    ISimpleType name5Type = name5Info.getSimpleType();
    for (int ix = 0; ix < 10; ix++) {
      IPrivateDTView.ITestNodeElement el = node.createTestNodeElement();
      node.addElement(el);
      el.setName5(sb.toString());
      sb.append('A');
    /* Checking */
    for (int ix = 0; ix < 10; ix++) {
      IPrivateDTView.ITestNodeElement el = node.getTestNodeElementAt(ix);
      try {
        name5Type.checkValid(el.getName5());
      } catch (DdCheckException e) {
        wdComponentAPI.getMessageManager().reportInvalidContextAttributeException(
          el,
          name5Info,
          "Hoppla, zu kurz: " + e.getMessage(),
          false);
    You'll get 5 error lines displayed by message manager for the strings with 0..4 characters.
    Hmmm? Please check, if this works for you too.
    Best regards
    Stefan
    PS: If this answer appears multiple times, ignore it, since i'm currently getting exceptions posting it

  • Will BADI BBP_CREATE_REQ_BACK be called by program  CLEAN_REQREQ_UP?

    SRM gurus,
    We are in SRM 4.0 (SRM_SERVER 500).
    I use t code SE38 to run program CLEAN_REQREQ_UP in SRM to convert shopping carts into purchase requisitions in R3 backend. I put our customized codes in BADI BBP_CREATE_REQ_BACK and I thought that this BADI will be called when a shopping carts was converted into a purchase requisition.
    I put a ABAP statement 'break-point.' in the BADI but the program CLEAN_REQREQ_UP did not stop at the BADI BBP_CREATE_REQ_BACK at all.
    Will BADI BBP_CREATE_REQ_BACK be executed when the program  CLEAN_REQREQ_UP runs?
    If the BADI will be called, how can I stop the program when the BADI was executed, so I can debug the codes?
    I did put a hard code statement "break-point." in there but it did not work.
    If the BADI will not be called by the program  CLEAN_REQREQ_UP, when the BADI be called?
    Thanks in advance!
    Fisher Li

    I use t code SE38 to run program CLEAN_REQREQ_UP in SRM to convert shopping carts into purchase requisitions in R3 backend.
    I don't think this report will create PR for your SC.
    Will BADI BBP_CREATE_REQ_BACK be executed when the program CLEAN_REQREQ_UP runs?
    I don't believe so.
    If the BADI will not be called by the program CLEAN_REQREQ_UP, when the BADI be called?
    It's called within a few steps down the stack of FM META_REQUISITION_CREATE.

  • CRM - Pricing User Exit in Java - BADI CRM_COND_COM_BADI

    Hi All
    I have to convert some user-exit from Abap to Java in order to work in CRM Pricing Scenario (I use VMC technology based on Web AS 7.00).
    In the manual attached to note 809820 (New userexit concept for pricing)
    I find this chapter but I don't understand how to work with BADI <b>CRM_COND_COM_BADI.</b>
    <b>My objective is to create Java user-exit using Custom Tables and Fileds.</b>
    <b>Passing additional information to pricing</b>
    To summarize, if the information used in a requirement is not depending on the current calculation result, then the information can be passed to the pricing engine. This is the best way to avoid e.g. DB or JCo calls from the user exits.
    Nearly all application scenarios using the pricing engine provide a way of filling additional attributes.
    1. Create a field catalogue entry for the additional attribute
    2. Program the filling of that attribute value
    The application calling the pricing engine and the way it is allowing customer code to fill or influence attributes is not part of this document. Here is only a short list of documentation to start with (also various notes exist):
    Application Description
    CRM Online Order Processing
    Implement BADI CRM_COND_COM_BADI. Note 850077
    Mobile Solutions Implement VBA user exit methods on SPCDOCHANDLER or SPCITEMHANDLER.Note 677314 and Note 934216
    Best regards
    Davide Ivanov
    [email protected]

    Hi davide,
    The BADI CRM_COND_COM_BADI is used for filling the pricing communication structure.
    If you have added any field at header level of the field catelog that will available in the changing parameter of the method HEADER_COMMUNICATION_STRUCTURE.
    If you have added any field at item level of the field catelog that will available in the changing parameter of the method ITEM_COMMUNICATION_STRUCTURE.
    Additional fields added at catelog can be filled with the values using this BADI.
    Thanks & Regards,
    Raghuram. K.R.

  • How to call Badi - CRM_ORDERADM_H_MERGE only on saving of service request.

    Hello CRM Experts,
    I am trying to change value of a field - "object_id" of table "CRMD_ORDERADM_H" while creation of a service request. I am doing this by implemeting BADI - CRM_ORDERADM_H_BADI, method - CRM_ORDERADM_H_MERGE. In this method I am creating a new number and updating it in Object_id field of orderadmh table. This badi is getting called on every button click like - NEW, SAVE, even on pressing enter in service request creation page.
    But I want to execute the code written in this method only on clicking SAVE button in web ui. But I am not able to find a way to do so.
    Please suggest something.
    Thanks,
    Pooja

    Actually another way of doing this would be to create a new BTE function module instead.  You can control the timing so that the function module will only fire once upon save if you configure the correct event timing.
    To find out more on how to use this do a search here on CRMV_EVENT or run that transaction code in your system and click on "read this information".
    For a bigger hint you would target:
    Transaction Category - BUS20001 - or specific category that you need.
    Execution TIme - 78 Before Saving
    Object - ORDERADM_H
    Event - BEFORE_SAVE
    Attribute <*>
    or perhaps
    Execution TIme 88
    Object ORDERADM_H
    Event - INIT
    or even:
    Execution time - immediately
    Object ORDERADM_H
    Event AFTER_Create
    In either case the call callback would be of type C call  once per transaction
    I would do an CRMV_EVENT_TRACE to figure out where to put this, but that's my best ideas.
    Take care,
    Stephen

  • BADI / user-exit for MD02 while creating Schedule Lines

    Hi experts,
    I have a problem with implementation that I'm designing.
    Current situation:
    While MRP run (MD02 or background) new Schedule Lines are being created in reference to MM Scheduling Agreement.
    Example:
    04.08.2014
    SchLne
    5500000415/00010
    200
    04.08.2014
    IndReq
    VSFB
    200-
    05.08.2014
    SchLne
    5500000415/00010
    300
    05.08.2014
    IndReq
    VSFB
    300-
    2 Schedule Lines where created - for wuantity 200 and 300.
    Target:
    There is a need to create more than one Schedule Line per day during MRP run. According to example there should be for example 2 Schedule Lines in 04/08 and 3 Schedule Lines in 05/08 all for quantity = 100. There is possibility to change Schedule Lines in ME38, but there is a need to make a change during creatin while MRP run.
    04.08.2014
    IndReq
    VSFB
    200-
    04.08.2014
    SchLne
    5500000415/00010 *
    100
    04.08.2014
    SchLne
    5500000415/00010 *
    100
    05.08.2014
    IndReq
    VSFB
    300-
    06.08.2014
    SchLne
    5500000415/00010 *
    100
    06.08.2014
    SchLne
    5500000415/00010 *
    100
    06.08.2014
    SchLne
    5500000415/00010 *
    100
    So instead of creating only 2 Schedule Lines, MRP should create 5.
    I'm looking for a BADI/user-exit to edit Schedule Lines which are to be created by MRP and change it tn reference to the needs.
    I found only one BADI:
    BADI:    MD_CHANGE_MRP_DATA
    method: CHANGE_MDPSX_MDBS
    The priblem is that this method is only being executed when there are Schedule Lines which already exist.
    Maybe some of you have done some extension similar to mine? Please give me advice where I should put extension.
    Thanks in advance!

    Dear Saravaran,
    Thanks for the reply.
    This will not suits to us. The provided BADI will works upto Posting the material document in transaction MIGO and it will not considered for the FI level entries.
    Hope you could have understand mine requirement.
    The requirement of mine is:
    While doing the GR with ref to PO the material documnet will be posted and subsequently FI documnet  will be  generated in Background. While generating the FI document i need to manipulate the values for the G/L. So that the manipulated values will be flow into BKPF and BSEG tables.
    Thanks.
    Regards
    Swamy

  • Region Monitoring iOS 7 : didEnterRegion method is not calling when app is killed by user or by OS in iOS 7 only. It is working fine when it is in background. and the same code is working fine with iOS 6 for both app in suspended mode and background mode.

    Region Monitoring iOS 7 : didEnterRegion method is not calling when app is killed by user or by OS in iOS 7 only. It is working fine when it is in background. and the same code is working fine with iOS 6 for both app in suspended mode and background mode. What changes I have to made to work great in iOS 7 also.

    I rewrote code for debugging purpose and tried to catch error using GetLastError();  method,
    but it only printed 0. Below is code snippet; I think Create() throw an exception
    and code goes to catch block. 
    LONG ConnectTS(CString strIP, UINT n_Port)
    try{
              ErrorLog(0,0,"ConnectTS is calling Create [is going to call]","");
              if(!Create())
    // Exception Line
    n_Err = GetLastError();
    return NET_INIT;
    catch(...)
                       DWORD errorCode = GetLastError();
                       CString errorMessage
                       errorMessage.Format("%lu",errorCode);
                       ErrorLog (0, 0, "Image
    System", (LPTSTR)(LPCTSTR)errorMessage);
                       return  IS_ERR_WINDOWS;
    Output: -
    ConnectTS is calling Create [is going to call]
    Image System
    0

  • Contract Account Custom view not called when replicating thru CRM

    Hi All,
    We have modified the Contract account screen through BDT.
    Functionality -
    We have a custom table, that needs to be updated during contract account creation when reference contract account is used for creation.
    The update is successful when creating contract account via ISU, but when creating thru CRM, the custom view is not getting triggerred.
    I have checked in debugging as well, the process flow triggered via CRM is different than that from ISU. When Business Agreement is created via CRM, neither of PAI / PBO event is triggerred defined for the custom view created in BDT.
    When we have the custom field passed from CRM, it is getting updated correctly, but if the field is not passed from CRM view and we are updating using code logic in BDT modules, it is not successful.
    Could you please help in case I have missed on some config or is there any alternate way to get the custom requirement achieved.
    The requirement is to have custom table updated in both Create and Change mode.
    Thanks in Advance!!
    Regards,
    Rajesh Popat

    Hi Siva,
    Contract Account was replicating correctly for the ISU system. The issue was, we want to update some custom fields that are not passed as a part of CRM data, but using BDT and some validations, we were trying to populate that field and also update the custom table and link the same to sub screen attached for the contract account screen.
    The issues is now resolved. The custom view is getting triggered through CRM. There was some config missing for the BDT.
    When using BDT, only the PAI module gets called for all the views defined for the BDT.
    Thanks!!
    Regards,
    Rajesh Popat

  • I need to create a  Notification in CRM WebUI  When we create a new contract

    Hi Experts,
    I am working in Utility Industry and as per the business requirement I need to create a  Notification in CRM WebUI
    When we create a new contract & click on apply button.
    As per my knowledge we are not maintaining Notification information in CRM System. So could you please
    help me to call IW52 during the new contract creation when we click on apply button.
    Thanks
    Roli

    Hello Roli,
    If your requirement is to launch Transaction IW52 after clicking apply button then you can use Transaction Launcher tool in CRM to integrate to CRM WebClient UI.
    Calling Transaction Launcher on user action
    BOR object or ITS based Transaction Launcher
    Regards,
    Ashik

  • Fax line used for outgoing calls when incomming fax not coming in?

    So is there a way to do this? Can I route the 1 FXO to FXS for incomming calls (and plug fax into FXS) or something like this and then use that line as an outgoing line when not in use?
    I don't need step but steps but the basics of how something like this could be configured would be awesome!!!

    I'm not sure if I understand. I set this up, so I understand phone systems enough to do this, but I don't really don't know the terminoligy.
    Let me back up.
    Currently our business has 2 lines and a fax line. Right now the two lines are plugged into 2 FXO ports and the fax line is just plugged into the fax machine--not the UC320. We're in mixed mode, not pbx specifically. We get one or two faxes a day and we send two or 3 faxes a day. We'd like to be able to use the fax line for outgoing calls when it's not being used for fax.
    So I need to be able to control the in and the out of the fax line. I need all incomming calls for the fax number routed to what I assume would be the FXS port (with the fax machine plugged into the FXS port), and none of the other lines routed in this way (the other lines would go to the attendant).
    Then I need if we send a fax, we need for when the fax machine opens the line for it to automatically be routed to the fax line. Then the fax machine can dial and send faxes. I think we send few enough faxes that we're not too worried about what happens if we try to send a fax and the phone is busy, but it would be nice to be able to look at a phone and tell if the fax line is in use.
    I don't really care if the Fax line is part of a shaed FXO, it can be a seperate choice on the phone for making outgoing calls (one of the buttons next to the screen or something).
    Is all this possible? Is it only possible in PBX style or is mixed ok?

Maybe you are looking for