Overview
See the TMS EDI Specifications Guide for payload examples and field information.
EDI Setup and Processing Summary
Set up EDI global parameters from TMS Admin → Configuration → EDI Setup.
Check the EDI Enabled box to send and receive EDI transactions.
Enter a value (in minutes) for the EDI Run Frequency to retrieve Load tender EDI 204 and 404 transactions from the Partner VAN with the EDIJob batch process.
Check the Display EDI References on Carrier Docs box to add Carrier Rate, Load Confirmation, and Driver Instructions.
Enter the EDI/ASI ID into the Trading Partner ID field.
Enter a value in the EDI Freight Charges Code field to send freight charges code in outbound EDI 210 transactions.
Check each EDI Transaction Logging Type to select the transaction types to store on the EDI Transaction object.
Inbound 204
Inbound 990
Inbound 214
Inbound 210
Inbound 824
Inbound 322
Inbound 410
Outbound 990
Outbound 204
Outbound 210
Outbound 214
Outbound 404
Outbound 998
Select the appropriate user from the EDI Administrator picklist. This user receives error emails for EDI issues.
Select the appropriate TMS field from the EDI Shipment Id field picklist.
This Load field identifies the Shipment/Load in EDI transactions. Usually, the PO Number field is designated as the EDI Shipment ID by the EDI trading partner(s) sending Load tenders.
Check the Enable EDI Overrides field to override the default EDI behavior for EDI 210, 214, and 990 transactions. These transactions are sent to a different EDI provider or Partner VAN for certain Accounts.
Check the Enable EDI Transaction Logging box to store the EDI transaction XML packet with the Load on the EDI Transaction object.
Enter a value in the EDI Fuel Surcharge Code field to send the fuel surcharge code in outbound EDI 210 transactions.
If desired, set the Customer Charge Code for EDI 210 transactions on each Accessorial record.
Navigate to TMS Admin → Accessorials.
Choose the Edit link for the appropriate accessorial records.
Enter the value into the Customer Charge Code field.
Click Save.
Repeat as necessary for each accessorial record.
Enter Kleinschmidt, Cleo, and/or Custom EDI credentials from TMS Admin → Credentials.
Set up each Trading Partner from TMS Admin → EDI Locations. Information may be bulk loaded if available. This avoids the creation of duplicate accounts and contacts when EDI Load Tender (204) transactions are processed. Enter values for the six override fields as needed.
Set up each EDI Bill To from TMS Admin → EDI Locations.
Enable EDI Rail transactions by navigating to TMS Admin → Modes.
Check the Rail box for each Mode to send and receive Rail EDI transactions for these mode types.
Include the container length in Rail EDI transactions by adding the container length to the name of the Equipment Types associated with Rail Modes.
Navigate to TMS Admin → Equipment Types and add or edit the name to include the length. For example, Container 53’, for Intermodal Modes.
Start the EDIWatcherJob (which starts the EDIJob) batch job which does the following.
Receives inbound Load Tender (204) transactions from customers.
To allow for quote creation, confirm Customer Rate Load and Carrier Rate Load are checked under Use Platform Events For in TMS Admin → Configuration.
When Enable Save & Rate for Load Creation is Checked on TMS Admin → Configuration, the following actions occur.
Carrier quotes are automatically generated from API and stored rate calculations.
Loads without a Mode prompt users to add one when first opening the FQA.
When updated 204 transactions are received, this rating process does NOT occur.
Customer quotes are automatically generated from stored rate calculations.
When EDI Update Settings for Customer Quote information with the Use Stored Rate action is present.
Stored rates are calculated for new and updated EDI 204 transactions.
Pass in a Customer Quote in the <charges> section or create a Customer Quote from a stored customer rate when a Load is created.
The Enable Save & Rate for Load Creation process does NOT occur.
Receives inbound Load Tender Response (990) transactions from Carriers.
Receives inbound Load Status (214) transactions from intermodal Carriers.
Sends outbound Load Status (214) location updates to customers for moving loads.
Sends outbound Load Tender Response (990) transactions to “auto-accept” customers.
Receives inbound Load Invoice (210) transactions from Carriers.
EDI 214 and 990 outbound transactions are processed as Platform Events.
EDI 214 outbound transactions are sent when a stop date or time is adjusted OR when a Carrier arrives/departs a stop.
EDI 990 outbound transactions are sent when the EDI status is either Accepted or Declined.
This job also sends EDI 214 status transactions for in-transit EDI loads for customers requesting them.
Load Tenders are represented as Loads with an EDIStatus field value of Pending.
Load Tenders can be updated or cancelled by the client. For trading partners that are not using the EDI Order Update Console, the EDI Status field in these cases changes to Updated by Customer and Cancelled by Customer, respectively. Updated load tenders must be re-accepted. For trading partners that are using the EDI Order Update Console, the EDI Status field will change to Update Pending from Customer when update 204s are received. This requires a user to process the update 204 from the EDI Order Update Console. See the article on using the EDI console.
For trading partners that are not using the EDI Order Update Console, Initiate Load Tender Response (990) transactions by changing the EDI Status field to Accept or Decline. Pass the EDI Decline Reason field by setting it on the Load.
EDI Tenders with a populated EDI Response Deadline field must be responded to before the deadline.
Shipment Status (214) transactions are sent when the following occurs.
Appointment Time is populated on a Stop.
Arrival Date is populated on a Stop.
Departure Date is populated on a Stop.
The location updates once a day when a load is in-transit.
EDI 214 transactions can also be sent manually from the Load Detail page for completed/delivered loads.
Outbound Invoice (210) transactions are initiated by selecting Customer Invoices and clicking on the Generate & Send button from the Customer Invoice tab or individually by clicking the Send Via EDI button from the page layout.
Add the EDI Accept/Decline button to the load list view if bulk EDI 990 Accepts/Declines are desired.
Add the EDI Status button to the load list view if bulk EDI 214 send transactions are desired.
The Stop object Carrier Status Reason picklist is used for EDI 214 status transactions. Entries may be deleted from this list, but do not add to or modify existing entries if you are using EDI.
The EDI Provider field on the Load object indicates which EDI Provider sent the Tender (204) Transaction.
For Carriers that receive EDI 204 tenders and send EDI 990 Accepts/Declines, make sure the Carrier Service Tender Method field is set to EDI and that the EDI Provider field is also set.
A Quote/Contract Id is typically required for Carrier quotes that are tendered via EDI.
For each trading partner EDI Location, add or configure EDI Update Setting and EDI Load Reference records as needed. Add these as related lists on the page layout.
Make sure the EDI Transaction table is on the Load page layout as a related list.
The Load Container/Trailer Number field may be populated by an inbound EDI 214 transaction.
Set the Transportation Profile object Location Update Send Frequency field for those customers that require frequent EDI 214 X6 location updates for moving loads.
X6 location updates are processed Platform Events.
If Appointment Times are populated on an inbound EDI 204 tender, the corresponding EDI 214 Appointment Time status updates are automatically sent on tender acceptance.
When using Orderful, populate the Trading Partner ID from TMS Admin → Configuration.
A custom EDI implementation may be used by implementing the web service methods in the EDI Specification. Enter the URL and credential information from TMS Admin → Credentials, using the Custom EDI record. Note that the Custom EDI connector supports Basic Authentication.
EDI Rail Transactions
EDI Rail transactions are used when the following criteria are met.
The Rail field is Checked on the Mode.
Custom Modes may use the Rail functionality so long as the Rail field is Checked.
The Carrier Service has a Mode with the Rail field Checked.
The Carrier Quote contains one of the Rail enabled Carrier Services.
Create Rail Loads using the Freight Plan Console to create a Freight Plan with one customer Load to multiple Carrier Loads. Typically the Rail Freight Plan consists of the following Load types.
One Drayage Carrier Load
One Rail Carrier Load
One Drayage Carrier Load
EDI Rail transactions assume one customer Load per Carrier Load. For outbound EDI 404 transactions, Carrier Loads in a Freight Plan include the Customer Bill To from the customer Load on the Freight Plan. In cases when one Freight Plan Carrier Load is associated with multiple customer Loads, one Customer Bill To is selected.
EDI Rail transactions are logged as the following types.
322 (inbound)
Load Status updates are received through the GetLoadStatusMessages web service operation.
404 (outbound)
Original and Updated Load Tenders are sent with the SendLoadTender web service operation.
410 (inbound)
Load invoices are received through the GetLoadInvoices web service operation.
824 (inbound)
Load Tender responses are received through the GetLoadTenderResponses web service.
998 (outbound)
A Load Tender Cancel is sent with the SendLoadTender web service.
EDI 998 transactions are only sent when removing a Carrier from a Load with the Remove Carrier modal on the Carrier Banner.
See the Revenova Web Services Guide for more specific operation information.
EDI Rail Technical Specifications
This section contains information for configuring a custom EDI implementation.
Entity Identifier Codes
Entity Identifier Codes may be set based on customer preference for the following values.
SH (Shipper in the N1 Loop)
CN (Consignee in the N1 Loop)
Revenova does not send specific Account information for these values.
The table below contains the relationships between the TMS fields and web service for EDI transactions with the corresponding Entity Identifier Codes.
Entity Identifier Code | TMS Value | Web Service Element |
---|---|---|
SF | First Stop Account (from Customer Load in a Freight Plan) | ultimateShipper |
PV - Party Performing Certification (in the N1 Loop) | Shipping/Receiving Contact for First Stop of the (from Customer Load in a Freight Plan | ultimateShipper |
UC (in the N1 Loop) | Last Stop Account (from Customer Load in a Freight Plan) | ultimateConsignee |
Last Stop Shipping/Receiving Contact (from Customer Load in a Freight Plan) | ultimateConsignee Contact | |
N1 (in the N1 Loop) | Accepted Carrier (on the next leg in a Freight Plan) | notifyParty |
Tender Contact on the Carrier Service (on the next leg in a Freight Plan) | notifyParty Contact | |
N1 (in the N1 Loop) | *Account associated with the Load Notify Party field (Load not part of a Freight Plan) | notifyParty |
Contact associated with the Load Notify Party field (Load not part of a Freight Plan) | notifyParty Contact | |
PF - Party to Receive Freight Bill (in the N1 Loop) | Carrier bills for moving the Load (from Carrier Load in a Freight Plan) | billTo |
BN - Beneficial Owner (in the N1 Loop) | Customer Account billed for moving the Load (from Customer Load in a Freight Plan) | customerBillTo |
Billing Contact on the associated Account with the Load Customer Bill To field) | custeromBillTo Contact | |
CB (in the N1 Loop) | Contact sent based on the Transportation Type field.
| customsBroker |
Text field for Pricing Authority Information (PI Segment)
| quoteContractId | |
Origin route information for the Rail move (R2 Route Information Segment)
| originTerminalLocation | |
Destination or Interchange information for the Rail move (R2 Route Information Segment)
| destinationTerminalLocation | |
The level of transportation service requested from the Rail in the Tender. (R2 Route Information Segment) Example: R2*CSXT*S*CHGO**25*X | movementType |
*If no Account is populated, no values are sent in the EDI transaction.
TMS Value | TMS Fields Included |
---|---|
First Stop (from Customer Load in a Freight Plan) | Appointment Required Appointment Time Expected Date Shipping/Receiving Hours Time Zone (Local Time) |
Last Stop (from Customer Load in a Freight Plan) | Appointment Required Appointment Time Expected Date Shipping/Receiving Hours Time Zone (Local Time) |
quoteContractId | Carrier Quote - Quote/Contract ID |
See the Revenova EDI Specification Guide for specific payload examples.
EDI Load References
Create EDI Load Reference records to dynamically create Load References and map EDI information in the TMS. EDI Load References map values to TMS records and may also be sent with outbound EDI 210, 214, and 990 transactions.
Complete the following steps to create EDI Load Reference records.
Navigate to TMS Admin and choose EDI Locations.
Select the appropriate EDI Location record.
From the Related tab, click New on the EDI Load References list.
Choose a Direction (Inbound, Outbound, or Both).
Select the TMS Object (Load, Stop, or Line Item).
Available TMS Fields are determined by the chosen Object.
Select the appropriate field.
Provide a Label for the EDI Load Reference. The Label must match what a customer is sending/expecting in the Inbound EDI 204.
Enter a Type.
Click Save.
Create additional EDI Load Reference records as needed.
Add field values to the TMS Field picklist to choose them as Load Reference elements. The Stop Appointment Time field is added as an example.
Navigate to Setup → Object Manager and choose the EDI Load Reference object.
Choose the Fields & Relationships tab.
Select the TMS Field field.
In the Values section, add the appropriate field name in the text box.
Click Save.
For the new field choose the Edit link.
Copy the API Name into the field from the Load, Stop, or Line Item object field.
The API Name must match exactly. Remove the rtms__ prefix for any TMS fields as shown in the image below.
Click Save.
Return to the Fields & Relationships tab and select the TMS Object field.
In the Field Dependencies section, click the Edit link for TMS Field.
In the appropriate Object (Load, Stop, or Line Item) column, choose the field.
Click the Include Values button, then click Save.
For more specific EDI transaction information see the specific transaction articles.
EDI Error Codes
This table contains a list of EDI error codes/messages and steps to resolve the issue or detailed information.
Error Code/Message | Quick Description |
---|---|
Arugment 1 cannot be null(rtms)218 | A required field is not populated |
EDI failure: Stop number is invalide. Cannot be zero. | The <dropoffStopNum> CANNO'‘T be set at zero. There must be a matching Stop number passed in the transaction. |
First exception on row 0; first error: STRING_TOO_LONG | STRING_TOO_LONG occurs due to populating a field with more characters than its max length. |
Unable to tunnel through proxy: 'HTTP/1.1 503 Service Unavailable”(rtms)34 | 'HTTP/1.1 503 Service Unavailable”(rtms)34' means that the EDI web service was down during the time of the callout to it. |
Read timed out(rtms) 35 | The Kleinschmidt transaction is timing out. As long as the EDI queue is still in place, the Loads will be picked up the next time the job runs. |
EDI Troubleshooting
EDI Failure: Stop number is invalid. Cannot be zero.
Issue
Kleinschmidt EDI tender fails due to zero being passed as a Stop number. Stop number cannot be zero.
Resolution
The <dropOffStopNum> CANNOT be set at zero. There must be a matching Stop number passed from Kleinschmidt.
<pickupStopNum>2</pickupStopNum>
<dropoffStopNum>0</dropoffStopNum>
<itemNum>12432</itemNum>
Insert failed. First exception on row 0; fist error: STRING_TOO_LONG, Transaction Payload: data value too large.
Issue
The STRING_TOO_LONG error occurs due to populating a field with more characters than the maximum length. For example, if a field length is set to 255 characters and attempt to insert 300 characters, this exception is thrown.
Resolution
This error is due to duplicate reference numbers sent from Kleinschmidt. Resolve this issue by contacting the Kleinschmidt team at motor@kleinschmidt.com and request they remove the duplicate fields from the XML transaction.