Customers integrating with SAP Business Network for Logistics (BNL) : Global Track and Trace option (GTT) from their SAP ERP system or Carrier network can face common issues integrating messages in and out of GTT. This blog captures the various integration flows, tools available within the application, and the common connectivity errors that a customer can face when integrating with BNL GTT. This blog is written primarily from the point of view of an IT Admin, Super User, internal technical support, or consulting partner, although it can be helpful for a functional end user.
There are two core data types within GTT that you will see integration activity for
This is the core business record that you, as a shipper, seek to track and gain insights into what take place in real-time. This is the core data object within GTT and can be any number of the following transaction types from your SAP ERP
These integrations often originate from your SAP ERP system and are sent inbound to GTT. Once integrated into GTT, the shipment data is pushed outbound to a Visibility Provider or Carrier via the BNL PutOrderForTracking API
This is the real-world event business data that feeds into your tracked process objects. GTT uses this integration data to deduce what is happening in real-time with the various Tracked Processes linked to the event. These events are often reported directly to a shipment tracked process object, which is then linked upstream to any deliveries or orders within your ERP.
These integrations often originate from a Visibility Provider, such as Project44, or directly from a Carrier’s backend system integrating to the BNL OrderEvents API
Idoc XML messages are integrated from your SAP ERP into GTT. These are then split out and read into the GTT engine/DB. GTT will then push out a PutOrderForTracking API call to your Visibility Provider or Carrier for that shipment. Then, throughout the life of that shipment, the Visibility Provider or Carrier will integrate OrderEvents via API back into GTT. GTT will then read those events and link them up with the relevant Tracked Processes linked to that shipment.
The GTT application is prebuilt with many tiles/pages/tools available to you that allow you to easily see error messages. You can use these tools to track down a specific ID and see where exactly it might have failed in the process and for what reason.
This tile allows you the ability to see the complete technical set of data available for a given tracked process record. You can use this tile to see the full history for any tracked process (be it a shipment, delivery, purchase order, etc..). here, you can see the following relevant information for a given ID.
This tile is your primary tool to analyze and view the integration-related activity in and out of the system and where you can see what the system is doing internally when it is processing the Tracked Processes and Events for consumption. You will also see reports/metrics here that outline a summary of how many of your records have failed, how many have been successful, and how many are pending consumption within a given timeframe. You can also utilize the Tracking Error Report for a given timeframe to see an aggregate analysis of common errors that are logged within your own tenant.
This is the primary integration monitoring tool that is used to analyze the complete set of integration activity within GTT for your tenant. Here, you can see both Tracked Process integrations from your SAP ERP as well as Event integrations from a Visibility Provider or Carrier.
This tool, like the MML tool, can be used to see the event-specific integration processing records. This is specific to events only from a Visibility Provider or Carrier.
This app is used to analyze/view the inbound and outbound API traffic between GTT and your Visibility Provider or Carrier.
*For additional information on the tools available to you within the app, please visit the Guide for Message Log Administrators to learn more
Duplicate alternative keys xri://sap.com/id:LBN#11111111:xx1234:FT1_SHIPMENT:1234567 are not allowed. Change the message payload to remove the duplication or contact your Model Administrator.
404 Not Found: "404 Not Found: Requested route ('lbnplatform-bprepo.cfapps.eu10.hana.ondemand.com') does not exist.<EOL>"
Swagger validation failed. #/trackedObjects/1/value: string [/XX12345] does not match pattern ^[^;%\/\\]*$. Correct the message payload or contact your Model Administrator.
Invalid date and time format 000000011111111 in field(s) EVT_EXP_DATETIME for tracked process/event (TRXID:1234567). Check the message payload.
503 Service Unavailable: "503 Service Unavailable: Requested route ('lbnplatform-bprepo.cfapps.eu10.hana.ondemand.com') has no available endpoints.<EOL>"
503 Service Unavailable: "{"timestamp":1690669205454,"status":503,"error":"Service Unavailable","path":"/bpr/BusinessPartners"}"
502 Bad Gateway: "502 Bad Gateway: Registered endpoint failed to handle the request.<EOL>"
Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-3 - Connection is not available, request timed out after 30000ms.
For process event, LBN ID LBN#11111111 in Alternative Key must match the LBN ID LBN#2222222 of the current user. Change the message payload to use the correct LBN ID.
Duplicate primary keys {"Time":"2023-08-17T07:00:00Z"} are not allowed. Change the message payload to remove the duplication or contact your Model Administrator.
HTTP operation failed invoking https://sap-lbn-connector.na.project44.com/sap-lbn/inbound/order-for-tracking with statusCode: 400 'ERROR | An error occurred while processing a request: error\u003d An error occurred while handling a request: error\u003d UPDATE failed: Shipment does not exist for track id: VVVVVVVVV and technical id: xri://sap.com/id:LBN#11111111:xx1234:FT1_SHIPMENT:1234567:GTT'
HTTP operation failed invoking https://na12.api.project44.com/api/v4/ltl/trackedshipments with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errors':[{'severity':'ERROR','message':'Origin stop start time must occur before destination stop start time.','source':'SYSTEM'}],
HTTP operation failed invoking https://na12.api.project44.com/api/v4/tl/shipments with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errors':[{'severity':'ERROR','message':'There is no Primary Capacity Provider for identifier P44_EU:VVVVVVVV', }
HTTP operation failed invoking https://na12.api.project44.com/api/v4/ltl/trackedshipments with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errors':[{'severity':'ERROR','message':'shipmentStops[1].appointmentWindow.startDateTime, must not be null','diagnostic':'shipmentStops[1].appointmentWindow.startDateTime','source':'SYSTEM'},{'severity':'ERROR','message':'shipmentStops[1].appointmentWindow.endDateTime, must not be null','diagnostic':'shipmentStops[1].appointmentWindow.endDateTime','source':'SYSTEM'}]
HTTP operation failed invoking https://sap-lbn-connector.na.project44.com/sap-lbn/inbound/order-for-tracking with statusCode: 400 'ERROR | An error occurred while processing a request: error\u003d An error occurred while handling a request: error\u003d Carrier scac must be provided'
HTTP operation failed invoking https://na12.api.project44.com/api/v4/ltl/trackedshipments with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errors':[{'severity':'ERROR','message':'shipmentStops[1].location.contact.phoneNumber, A phone number, including an optional country code for North America but not including the optional extension, cannot be less than ten digits.','diagnostic':'shipmentStops[1].location.contact.phoneNumber','source':'SYSTEM'}],
HTTP operation failed invoking https://na12.api.project44.com/api/v4/tl/shipments with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errorMessage':'Error creating truckload shipment.','errors':[{'severity':'ERROR','message':'Shipment destination appointment window must end 9 Months into the future.','source':'SYSTEM'}],
HTTP operation failed invoking https://na12.api.project44.com/api/v4/ltl/trackedshipments with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errors':[{'severity':'ERROR','message':'shipmentStops[1].location.address, State should be one of: [DIF, AGU, BCN, BCS, CAM, COA, COL, CHP, CHH, DUR, GUA, GRO, HID, JAL, MEX, MIC, MOR, NAY, NLE, OAX, PUE, QUE, ROO, SLP, SIN, SON, TAB, TAM, TLA, VER, YUC, ZAC, AG, BC, BS, CM, CO, CL, CS, CH, DG, GT, GR, HG, JA, EM, MI, MO, NA, NL, OA, PU, QT, QR, SL, SI, SO, TB, TM, TL, VE, YU, ZA]','diagnostic':'shipmentStops[1].location.address','source':'SYSTEM'}],
HTTP operation failed invoking https://sap-lbn-connector.na.project44.com/sap-lbn/inbound/order-for-tracking with statusCode: 500 'ERROR | 400 : \'{\'httpStatusCode\':400,\'httpMessage\':\'Bad Request\',\'errors\':[{\'severity\':\'ERROR\',\'message\':\'Invalid identifier value ABCD12345678 for AIR_WAYBILL\',\'source\':\'SYSTEM\'},{\'severity\':\'ERROR\'
HTTP operation failed invoking https://na12.api.project44.com/api/v4/ltl/trackedshipments/123454 with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errorMessage':'Could not create shipment for specified capacity provider.','errors':[{'severity':'ERROR','message':'No shipment identifier was provided that is supported by the capacity','source':'SYSTEM'}],
HTTP operation failed invoking https://na12.api.project44.com/api/v4/tl/shipments with statusCode: 400 {'httpStatusCode':400,'httpMessage':'Bad Request','errors':[{'severity':'ERROR','message':'shipmentStops[0], City must be provided for each shipment stop, when providing a complete address.','diagnostic':'shipmentStops[0]','source':'SYSTEM'},{'severity':'ERROR','message':'shipmentStops[0], A company name must be provided for each shipment stop, when providing an address or geoCoordinates.','diagnostic':'shipmentStops[0]','source':'SYSTEM'},{'severity':'ERROR','message':'shipmentStops[0], State must be provided for each shipment stop, when providing a complete address.','diagnostic':'shipmentStops[0]','source':'SYSTEM'},{'severity':'ERROR','message':'shipmentStops[0].location.address.postalCode, may not be empty','diagnostic':'shipmentStops[0].location.address.postalCode','source':'SYSTEM'}],
By now, you should be familiar and comfortable with the tools available to you as an IT Admin, Partner, or end user that helps guide you down a path to analyze and support any integration errors faced within your BNL GTT tenant. You can reference this blog as a resource to reference common errors should you see them.
For additional documentation for SAP BNL GTT, please click here
We look forward to enhancing this knowledge base over time, so please feel free to comment below with any additional errors or suggestions should you see these in your day-to-day work on the GTT application. We will update this blog over time as additional topics and functionalities are released to the application.