You want to create a Billing Document or a Billing Document Request in your SAP S/4HANA Cloud system by sending billable data into your system through SOAP messages.
You use the API BillingDocumentRequest_In, (Communication Scenario: Billing Integration - SAP_COM_0120) or the BillingDocumentRequestRequest_In (Communication Scenario: External Billing Document Request Integration - SAP_COM_0176).
You get a 500 Internal error
Error: <soap-env:Envelope xmlns:soap-env=" http://schemas.xmlsoap.org/soap/envelope/ "> <soap-env:Header/> <soap-env:Body> <soap-env:Fault> <faultcode>soap-env:Server</faultcode> <faultstring xml:lang="en"> Web service processing error; more details in the web service error log on provider side (UTC timestamp ...; Transaction ID ...) The error log can be accessed by service provider from SAP backend </faultstring> <detail/> </soap-env:Fault> </soap-env:Body> </soap-env:Envelope>
Reproducing the Issue
Step 1: Call SOAP over http
Step 2: pass the payload
Step 3: get the error 500
In the backend the following error is issued:
"SRT: Plain SOAP: Reliable messaging (RM) configured, but no Message ID and no WSRM assertion provided."
According to this message, the Message ID is missing for reliable messaging.
Add a Message ID (UUID) as suffix to the URL for the web service call:
In case the operation profile is “Asynchronous reliable”, the transfer of a message ID is required to enable ExactlyOnce processing on provider side, which is essential for reliability. Thus the message ID will be transferred as if “SAP message ID” was selected.
Our web services are asynchronous and reliable, so a Message ID is required.
The app "Message Dashboard"is used for message monitoring and error handling.
You can find details about it in the business documentation of the web service (accessible via the SAP API Business Hub).
The link to the business documentation can be found on the bottom of the page. And the message monitoring and error handling are described on the bottom of the linked SAP Help page "Billing Document- Create".
You can monitor the service by usage of the app “Message Dashboard”, but at first you must assign the corresponding recipient to your user via app “Assign Recipients to Users”:
namespace: /SDBIL, recipient name: SDBIL_BD_R_IN_RECIPIENT for billing documents (or SDBIL_BDR_R_IN_RECIPIENT for billing document requests), message type: Application Error or Technical Error, Overview: X and Technical User X.
(Recipient for the outbound message is: SDBIL_BD_C_OUT_RECIPIENT for billing documents and SDBIL_BDR_C_OUT_RECIPIENT for billing document requests)
Then you can call the “Message Dashboard” and the messages are displayed. You can even check the content of the web service payload (data content).
This issue with the message ID is an exceptional case because this error message can not be traced by the SAP Application Interface Framework which is used for the monitoring and error handling. The sent message could not be processed by the application at all because it was not reliable with the missing message ID.
SAP API Business Hub - Billing Document Create
SOAP API Business Hub - Billing Document Request Create
Scope Item IZ6 - External Billing
SAP Help - Billing Document Create
SAP Help - Billing Document Request Create
App Message Dashboard
Assign Recipients to Users - F2949
App Communication Arrangement - F1763
SAP WIKI SOAP
reliable messaging, SOAP, API, web service, communication scenario, SAP_COM_0120, BD_REQUEST_IN, SAP_COM_0176, BDR_REQUEST_IN, F1763, Communication Arrangement, Message Dashboard, /AIFX/WDA_MSG_MONITOR (/AIFX/WDAC_MSG_MONITOR), Assign Recipient, F2949, SDBIL_BD_R_IN_RECIPIENT, SDBIL_BD_C_OUT_RECIPIENT, SDBIL_BDR_R_IN_RECIPIENT, SDBIL_BDR_C_OUT_RECIPIENT, , KBA , SD-BIL , Billing , Problem