Skip to Content

SRM PO not created from SC - Error in Transmission


I am new to SRM so I apologise up front.

Once a shopping cart has had it's second approval it is approved but does not create the Purchase Order.

Viewing the SC in the Shopping Cart Monitor the SC has a status of Approved but has a message of "S& 150 Updating could not be completed". The Item Description status is "Error in transmission".

Looking at the workflows I can see that the SC approval workflow has completed but nothing after that.

I had a look at RZ20 but there didn't seem to be any errors. I didn't check the entire tree so I might have missed it. Are there certain things that I should check in RZ20?

I am happy to debug it but I don't where to put the breakpoint. Do you have any suggestions?

Are there any places that I can check for errors?

What creates the PO? I thought it was a workflow but i'm not so sure anymore. Is it possibly a batch job?

We are running SRM 713.

My apologies for all the questions. Please ignore the silly ones and answer the useful one.

Many thanks.


Add a comment
10|10000 characters needed characters exceeded

Related questions

3 Answers

  • Best Answer
    Posted on Jul 16, 2020 at 01:40 PM


    We found a solution.

    I took the Purchase Order details while debugging FM BBP_PD_SC_TRANSFER in SRM. I then created a PO directly in the back end system, ERP. The PO number was designated as an external number in the back end system so I supplied the PO number that I retrieved from the PO details while debugging FM BBP_PD_SC_TRANSFER in SRM. When you saved it you would get a message to say that the PO had been created. But then straight afterwards you would get an 'Express Information' dialog which said 'Express document "Update was terminated" received from author "XXX XXX"'.

    Clicking on the Inbox button on the 'Express Information' dialog or via t-code SM13, it showed the error info 'Cannot process message; no node determined for <email>.'

    When trying to edit the PO via ME22N it gave the message that the PO did not exist. There were no entries in the EKKO table for the PO which confirmed that the PO had not been created.

    Our basis team maintained the email id in t-code SCOT in the back end system. It then allowed the saving of the PO directly in the back end system as well as from the SRM portal.

    Thank you very much Laurent and Imre for the information. It gave me a much better understanding of the process.



    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Jun 30, 2020 at 04:50 PM

    Hello Stuart,

    you can begin to check wiki below:

    Shopping Cart



    Add a comment
    10|10000 characters needed characters exceeded

    • Hi Laurent.

      Thank you very much for the link. It has been very useful.

      My apologies for taking so long to get back to you both, Laurent and Imre.

      I have managed to debug it through but I haven't managed to find the actual problem yet. If you have any more suggested solutions they would be greatly appreciated.

      I debugged it all the way through to class method CL_BBP_BS_ADAPTER_SC-IF_BBP_SC_BE_CRT~DO.

      Line 152 calls create_document which returns messages:

      S SRM Purchase Order created under the number 3000079701
      W Can delivery date be met?
      W Profitability segment being derived again

      There are no actual errors. The next call on line 160 calls evaluate_return and does not mark any of the messages as an error. It then calls on_create_success on line 171 which ends up calling BAPI_TRANSACTION_COMMIT in the backend ERP system. Debugging into that it seems that the buffer tables (Definitely JEST and JSTO tables) have no values and therefore have nothing to save so it returns an error:

      E S& 150 Updating could not be completed

      On line 175 it calls evaluate_return which picks up the error message and raises the communication error. In the comment where this is done it assumes that there was a lock in the backend. Prior to the commit the PO is locked in the backend but as soon as the commit fails the locks are removed. I see these locks as normal as the PO has not been committed at that point.

      Earlier on in the process the code calls function META_SC_BE_CRT which returns the error "No Driver Function Maintained BUS2012 CreateFromData ERP_4.0". After doing a quick search on the error and not finding anything useful as well as the fact that it does not stop the process I think the error is unimportant but not 100% sure on that.

      The FC has confirmed that the process works in other systems so it is something specific with this one. They have checked that the PO number ranges have been set up correctly.

      My next step is to raise an SAP Incident to see if SAP can give any guidance.

      I'll update this question with the solution when I have one.

      Thank you both for your help so far.


  • Posted on Jul 01, 2020 at 07:42 AM

    Hey Stuart!

    As Laurent said, the Wiki is a good starting kit. Regarding the issue itself:

    - as the Workflow is complete (you could confirm it in t-code BBP_PD > drill down to the Workflow part), the issue should be somewhere during the transfer;

    - in case of Classic technical scenario the transfer is made off of two main part:

    1. the first is to decide what will be the follow-on document (PR,PO,Reservation): you could debug it from the Function B31I_INTERPRETE_DATA or - for an S4-system - the BS4I_INTERPRETE_DATA .

    2. second is the actually create those follow-on documents: this happens through adapter classes. These classes are enumerated in the table BBP_FUNCTION_MAP.


    BUS2105 CreateFromData1 ERP_2.0 CL_BBP_BS_ADAPTER_RQ_CRT_470

    shows that a Purchase Requisition of which the back-end ECC is an ERP 2.0 system will have the class CL_BBP_BS_ADAPTER_RQ_CRT_470 and so on.

    So, You can set breakpoints in the corresponding class.

    - in case of Extended classic scenario, the above is easier a bit as local PO is getting created from the SC. The main logic is the Function BBP_PD_PO_CREATE. Once the local PO got created, it will be copied to the ECC back-end (debug from Function B46B_DPO_TRANSFER).

    The following Wikisite: will provide you a comprehensive transfer guide for Classic scenario. I'd suggest to read through that document prior to start any debugging... :)

    Does my answer make sense? hope so. Good luck!



    Add a comment
    10|10000 characters needed characters exceeded