Customers trying to connect with SAP Logistics Business Network Freight Collaboration (LBN FC) from their SAP S/4HANA backend system or SAP Transportation Management often faces several connectivity issues. These B2B integration errors are mostly due to some misconfigurations either at LBN or at SAP S/4HANA backend system. This blog tries to capture the common connectivity errors we see that customers make when trying to connect to/from LBN using B2B SOAP messages from/to their backend system. For the sake of simplification, we'll consider all backend systems as SAP S/4HANA in this blog.
Capturing the list of issues mentioned in this blog below
1. Missing LBN Id in PreferredCarrierParty (StandardID with schemaAgencyId=310 and schemeID=LBN)
2. Relationship of Ordering Party (shipper) LBN Id: 1001000XXXX and Carrier Party LBN Id: 1001000YYY...
3. Ordering Party LBN Id could not be validated
4. SSL Handshake Error
1. java.lang.NullPointerException: while trying to invoke the method java.lang.CharSequence.length()...
2. 401 Unauthorized
3. 503 Service Unavailable - There is no SAP Cloud Connector (SCC) connected to your subaccount
4. 403: Forbidden when communicating with S/4 Services
5. Response was of unexpected text/html ContentType
6. Invalid SOAP Envelope name
7. 405 Method Not Allowed
8. org.apache.cxf.binding.soap.SoapFault: Server Error
9. org.apache.cxf.binding.soap.SoapFault: Authorization missing for service
You've established connectivity between LBN and your backend SAP S/4HANA. You can follow LBN Application Help or the other blogs published to achieve the same.
The following diagram depicts the various integration possibilities between LBN and customer's backend system for inbound and outbound communications. This blog talks about the possible error scenarios in the following connections. Since we deal with a minimum of 3 systems - SAP S/4HANA or SAP PI/PO, SAP Cloud Connector, SAP LBN - we can assume that there's a configuration error at either one of these places whenever you come across an error.
How to keep a track of the message flow in each system? You can check the following monitoring tools to check the status of message in each system.
In the inbound scenario, if the messages are not triggered out of the system and you can't find it in srt/sxi monitor, the issue is within the TM configurations. Please check the necessary configurations needed to be maintained for each services documented in LBN Application Help or the consolidated SAP Note for LBN customers. Listing them below:
If the messages are successfully sent out of S/4HANA and not received in LBN, you can check the Manage Integration Logs for error details. If the error is not self-explanatory, you can check this blog or reach out to LBN team via incidents.
For the outbound scenarios, a general thumb rule is, if the error is thrown from your backend S/4HANA system and the message can be tracked in cloud connector logs, it's usually a pending configuration issue.
If the messages are successfully sent out of S/4HANA and not received in the LBN tenant, you can check for the error in Manage Integration Logs app. Please note that if the message payload doesn't contain the shipper LBN Id, the shipper customer won't be able to see any error at all. Also, any issues related to authentication can't be seen in LBN as well. Here you need to check the logs in your backend srt/sxi monitors to get the actual error. You should find the errored messages and the detailed logs in Manage Integration Logs app as shown below:
Inbound processing in endpoint at /lbn/b2b/soap/v1 failed with message "Fault:javax.script.ScriptException: java.lang.Exception: java.lang.IllegalStateException: Missing LBN Id in PreferredCarrierParty (StandardID with schemaAgencyId=310 and schemeID=LBN)@ line 261 in AnalyzeInboundMessage.groovy", caused by "IllegalStateException:Missing LBN Id in PreferredCarrierParty (StandardID with schemaAgencyId=310 and schemeID=LBN)"
This error is quite self-explanatory. As the name suggests, LBN can't find a carrier LBN Id maintained in the payload. In the case of a B2B message, LBN expects the carrier to be sent in the MessageHeader. In an A2A message such as tracking, the LBN Id is expected to come within the carrier placeholder.
Inbound processing in endpoint at /lbn/b2b/soap/v1 failed with message "Fault:javax.script.ScriptException: java.lang.Exception: java.lang.IllegalStateException: Relationship of Ordering Party (shipper) LBN Id: 1001000XXXX and Carrier Party LBN Id: 1001000YYYY has not yet been established@ line 134 in SetMessageHeaderExchangePropertyPartnerDirectory.groovy", caused by "IllegalStateException:Relationship of Ordering Party (shipper) LBN Id: 1001000XXXX and Carrier Party LBN Id: 1001000YYYY has not yet been established"
Fault:javax.script.ScriptException: java.lang.Exception: java.lang.IllegalStateException: Ordering Party LBN Id could not be validated. Check the PID: 69dc489f-8afd-4129-9966-c712a1822edd and Ordering Party LBN Id: 1001000XXXX@ line ZZZ in SetMessageHeaderExchangePropertyPartnerDirectory.groovy"
java.lang.NullPointerException: while trying to invoke the method java.lang.CharSequence.length() of a null object loaded from field java.util.regex.Matcher.text of an object loaded from local variable 'this'
org.apache.cxf.interceptor.Fault: Could not send Message., cause: org.apache.cxf.transport.http.HTTPException: HTTP response '401: Unauthorized. <InvalidClientException><error>invalid_client</error><error_description>The client certificate is not configured in a service key of a Process Integration Runtime service instance. Client certificate: 'xxx
This specific error occurs when customer chooses to authenticate the outbound calls from LBN to their intermediate integration system using client certificate that's provided by SAP LBN. And this certificate got expired and shipper hasn't updated it yet. Once updated this issue should get resolved.
The client certificates is provisioned by LBN's integration system and usually has a validity of one year or less. LBN informs customers using the Cloud System Notifications for all product alerts. Customers need to subscribe to this in order to receive such notifications. We also have published a blog on how to update certificates if you're using SAP Cloud Integration (SAP CPI) as the intermediate integration system. There's also a new feature in LBN where customers can authenticate the calls to intermediate integration system using Basic authentication. This'll help the customer to avoid the trouble of updating the certificate every year. Linking all these informations below:
org.apache.cxf.interceptor.Fault: Could not send Message., cause: org.apache.cxf.transport.http.HTTPException: HTTP response '503: Service Unavailable. There is no SAP Cloud Connector (SCC) connected to your subaccount. Requested opening of a tunnel for subaccount "a46089868" and SCC location ID "LBN_S4_LocationID". Check the configuration on SCC and cloud side.' when communicating with https://ADDRESS_IS_SET_VIA.HEADER
Type - 1: org.apache.cxf.interceptor.Fault: Could not send Message., cause: org.apache.cxf.transport.http.HTTPException: HTTP response '403: Forbidden. Access denied to resource /sap/bc/srt/xip/scmtms/torci/400/transportationorderconfirmation/transportationorderconfirmation_in on system xxxx-yy.zzzz.test:8001. In case this was a valid request, ensure to expose the resource correctly in your cloud connector.' when communicating with https://ADDRESS_IS_SET_VIA.HEADER
Type - 2: org.apache.cxf.interceptor.Fault: Could not send Message., cause: org.apache.cxf.transport.http.HTTPException: HTTP response '403: Forbidden' when communicating with http://xxxx-yy.zzzz.test:8001/sap/bc/srt/xip/scmtms/torci/400/transportationorderconfirmation/transp...
org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType. Incoming portion of HTML stream: (none)
Issue could be a typo in the service endpoint correctly, especially when other document types are getting forwarded to the same S/4HANA backend. (You can confirm this by checking whether communication to other service interfaces in the system is working in Manage Integration Logs).
Compare the path url maintained in your SOAMANAGER or PI system and the System URL matinained in Destination Detail in System Connections app.
org.apache.cxf.binding.soap.SoapFault: Invalid SOAP Envelope name
In the destaination detail in System Connection app, customer must've maintained the SOAP binding url and not the actual service interface url (from SOAMANAGER transport binding for path and SMICM/Cloud Connector for host).
This is where you'll find the SOAP binding url (which is the incorrect config). THIS IS THE INCORRECT CONFIG. PLEASE CHECK BELOW FOR THE CORRECT CONFIGURATION.
FOLLOWING IS THE CORRECT CONFIGURATION
org.apache.cxf.binding.soap.SoapFault: Error writing to XMLStreamWriter., cause: java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 405 Method Not Allowed"
This is most likely a caching issue and a restart of ICM should resolve.
PLEASE CONSULT WITH YOUR BASIS TEAM BEFORE DOING THIS STEP.
org.apache.cxf.binding.soap.SoapFault: Server Error
This mostly come when customers uses an intermediate SAP PI/PO system in between LBN and S/4HANA system.
org.apache.cxf.binding.soap.SoapFault: Authorization missing for service "http://sap.com/xi/TMS/Global TransportationOrderConfirmation_In", operation "TransportationOrderConfirmation"; more details in the web service error log onprovider side (UTC timestamp 20220822100416; Transaction ID eafeb020846549c98c35b7e8ef60cb85)
This blog attempts to capture some of the common connectivity issues that arise when trying to connect between SAP S/4HANA or SAP Transportation Management and SAP LBN. Let us know if this helped you to gain some insights into the errors that you face. If there are any additional error types that you want to capture, do mention it in the comments. We'll try to update the blog with the same.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
10 | |
5 | |
4 | |
4 | |
3 | |
2 | |
2 | |
2 | |
2 | |
1 |