Shipment Import
From UG
[edit] Mantis
0002455: [EDI to TMS] (Shipment_Import) .............. <parent>
[edit] Prerequisites
[edit] Intro
Shipment Import is a message transmitted by CT2 to TMS about approved CTs in the form of XML.
CT2 script is to send some information.
Message could be sent in these cases:
- new approved CT has to be forwarded
- XML: MessagePurpose="1002" // New
- CT was updated in CT2 DB
- XML: MessagePurpose = "1004" // Change
[edit] Example
<?xml version="1.0" encoding="iso-8859-1" ?> - <ns0:Envelope xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:ns0="http://www.w3.org/2003/05/soap-envelope" xmlns:ebi="http://www.myvan.descartes.com/ebi/2004/r1"> - <ns0:Header> - <wsa:From> <wsa:Address>urn:duns:657589457</wsa:Address> </wsa:From> <wsa:To>urn:duns:657589457</wsa:To> <wsa:Action>urn:myvan:856</wsa:Action> - <ebi:Sequence> <ebi:MessageNumber>12117</ebi:MessageNumber> </ebi:Sequence> <wsa:MessageID /> </ns0:Header> - <ns0:Body> - <parmDocEnvelope> - <DocShipment ShipmentNo="3161007" MessagePurpose="1002" CarrierCode="" EarliestAvailDate="2010-08-130 08:00:00" LatestAvailDate="2010-08-30 16:00:00" TotalWgt="98" WgtUOM="200" BillingOption="10"> <DSGOriginAddress LocationNo="08081831" StreetName="7725 PARKLAWN AVENUE" City="EDINA" State="MN" PostalCode="55439" Country="US" CompanyName="Company ABC" /> <DSGDestinationAddress LocationNo="" StreetName="95 Paquin Road" City="MANITOBA" State="MB" PostalCode="R2J 3V9" Country="CA" CompanyName="Consumer Products" /> <DSGReferenceNumbers RefNoType="Stack Pallets" Value="Yes" /> <DSGShipmentAccessorial AccName="Hazardous" /> - <DocShpLineItem ContainerQuantity="1" Description="Goods" TotalLineItemWeight="98" WgtUOM="200" ContainerType="15" LineItemNumber="1" OrderQty="10" OrderQtyUOM="1" PurchaseOrderNo="PO#"> <DSGReferenceNumbers RefNoType="Order Pieces" Value="200 Pieces" /> </DocShpLineItem> </DocShipment> </parmDocEnvelope> </ns0:Body> </ns0:Envelope>
[edit] Schema
see http://ct.jaguarfreight.com/mantis/file_download.php?file_id=1577&type=bug
[edit] CT to TMS fields map
Initially only the following data will be sent(for every CT#CT Num):
- see fields in "CT to TMS fields map udated XXX.xls" file attached to mantis "0002229: [EDI to TMS] (Preliminary) Create data dictionary / TMS to CT2 fields mapping table " where Message = Import
[edit] Pending Address Use Case
This is related to Cybertrax_2.1_Client_(requirements)#New_Pending_Address_.28NPA.29_Feature.
Before sh....
[edit] UC 101 Editing Shipment data on CT side after first Shipment Import
Any edits to CT fields that are transferable as a part of Shipment Import message to TMS are subject to below use cases.
Also TMSS field should be updated accordingly.
[edit] UC 101A Change of Shipment data on CT2 side after Shipment Import before Load Plan Message received
Implem: Send same XML file as Shipment Import with this flag:
<xs:element name="DocShipment"> ... <xs:attribute name="MessagePurpose" use="required"> ... <xs:enumeration value="1004"> <xs:annotation> <xs:documentation>Change</xs:documentation> </xs:annotation>
- a) update record in CT2
- b) post update made to #Log 101B event into CT2 System Log
[edit] UC 101B Change of Shipment data on CT2 side after Shipment Import after Load Plan Message received
- a) Descartes will not accept this update so do not send XML
- b) Provide user with Warning message:
Warning: Attempt to update Portal CT after Load Plan has been received from TMS. CT2 record will be updated. Descartes record will NOT be updated. Are you sure you want to update? [Y] [N]
- c) update record in CT2
[edit] Log 101B event into CT2 System Log
Message: "Operator <login info> Changed Shipment data on CT2 side after Shipment Import after Load Plan Message received. Fields changed: ....<CT#><field, value from, value to> ... ". Message priority = high.
see CT2 System Log
[edit] APPENDIX Some relevant XML elements and attribute
! Please note that this section is not fully updated.
For up to date info see #CT to TMS fields map
Below are XML elements under element ns0:Body.
[edit] parmDocEnvelope
[edit] DocShipment
Used to provide top level shipping information, like totals and main shipping refernece numbers
Sub-elements:
<xs:sequence> <xs:element ref="DSGOriginAddress"/> <xs:element ref="DSGDestinationAddress"/> <xs:element ref="DSGBillToAddress" minOccurs="0"/> <xs:element ref="DSGReferenceNumbers" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="DocShpLineItem" maxOccurs="unbounded"/> <xs:element ref="DSGShipmentAccessorial" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence>
Example:
<DocShipment ShipmentNo="3161007" MessagePurpose="1002" CarrierCode="" EarliestAvailDate="2010-08-130 08:00:00" LatestAvailDate="2010-08-30 16:00:00" TotalWgt="98" WgtUOM="200" BillingOption="10">
Required Attributes:
- <xs:attribute name="ShipmentNo" use="required"> // map to: CT#CT_Num
- <xs:attribute name="LatestAvailDate" type="xs:dateTime" use="required"/> // map to: CT#Cargo_available
- <xs:attribute name="BillingOption" use="required"> // map to: TBD, for now always set to value "Collect"
[edit] DSGOriginAddress
Used to provide Origin Company and Address
Example:
<DSGOriginAddress LocationNo="08081831" StreetName="7725 PARKLAWN AVENUE" City="EDINA" State="MN" PostalCode="55439" Country="US" CompanyName="Company ABC" />
Required and important attributes:
Note: mapping below is for CT#Pick_up_Location object!
- <xs:attribute name="CompanyName" use="required"> // mapto: Address#Company
- <xs:attribute name="StreetNo" use="optional"> // mapto: first word from Address#Address_1; verify that it is a number, if not do not send; it could have hyphen in the middle, example: 33-21
- <xs:attribute name="StreetName" use="required"> // mapto: Address#Address_1, ignore first word from this string which is a street number, see above
- <xs:attribute name="City" use="required"> // mapto: Address#City
- <xs:attribute name="State" use="required"> // mapto: Address#State
- <xs:attribute name="PostalCode" use="required"> // mapto: Address#Zip
- <xs:attribute name="Country" use="required"> // mapto: Address#Country
- <xs:attribute name="PhoneNumber" this comes from admin >> address book >> transportation tab, that is apart of that company city.
- <xs:attribute name="ContactFName" this comes from admin >> address book >> transportation tab, that is apart of that company city.
- <xs:attribute name="ContactLName" this comes from admin >> address book >> transportation tab, that is apart of that company city.
[edit] DSGDestinationAddress
Used to provide Destination Company and Address
Example:
<DSGDestinationAddress LocationNo="" StreetName="95 Paquin Road" City="MANITOBA" State="MB" PostalCode="R2J 3V9" Country="CA" CompanyName="Consumer Products" />
Required and important attributes:
Note: mapping below is for CT#Export_Delivery_To object!
- <xs:attribute name="CompanyName" use="required"> // mapto: Address#Company
- <xs:attribute name="StreetNo" use="optional"> // mapto: first word from Address#Address_1; verify that it is a number, if not do not send; it could have hyphen in the middle, example: 33-21
- <xs:attribute name="StreetName" use="required"> // mapto: Address#Address_1, ignore first word from this string which is a street number, see above
- <xs:attribute name="City" use="required"> // mapto: Address#City
- <xs:attribute name="State" use="required"> // mapto: Address#State
- <xs:attribute name="PostalCode" use="required"> // mapto: Address#Zip
- <xs:attribute name="Country" use="required"> // mapto: Address#Country
- <xs:attribute name="PhoneNumber" this comes from admin >> address book >> transportation tab, that is apart of that company city.
- <xs:attribute name="ContactFName" this comes from admin >> address book >> transportation tab, that is apart of that company city.
- <xs:attribute name="ContactLName" this comes from admin >> address book >> transportation tab, that is apart of that company city.
- On XML file, need to add spaces between the telephone # and extension #
- IE change to: G61*IC*ED HYDER*TE*336-498-2654 X3059~
[edit] DSGReferenceNumbers
Used to define any needed reference number
Example:
<DSGReferenceNumbers RefNoType="Stack Pallets" Value="Yes" />
Not in use for now.
[edit] DSGShipmentAccessorial
Used to assign accessorials that are needed for a shipment
Example:
<DSGShipmentAccessorial AccName="Hazardous" />
Not in use.
[edit] DocShpLineItem
Used to provide commodity level and handling unit details
Example:
<DocShpLineItem ContainerQuantity="1" Description="Goods" TotalLineItemWeight="98" WgtUOM="200" ContainerType="15" LineItemNumber="1" OrderQty="10" OrderQtyUOM="1" PurchaseOrderNo="PO#">
Required attributes:
See lines in Data_Dictionary_for_EDI_to_TMS#Data_Dictionary tagged with "Import"
[edit] DSGReferenceNumbers
Example:
<DSGReferenceNumbers RefNoType="Order Pieces" Value="200 Pieces" />
Not in use.
[edit] How to know when passing of CT to TMS fails & how to send to TM
[edit] Import Yet
- If TMS Status of a CT record is import yet, that means that the record was not uploaded into the TM.
- To send to the TM, use update fields via virtual group filters & upload to TMS.
[edit] IE of Status Yet
[edit] Mantis History
[edit] nu 0002369 [EDI to TMS] (Shipment_Import) Implement Shipment_Import message in TMS/CT2 environment
[edit] nu 0002380 [EDI to TMS] (Shipment_Import) Pass Haz info during Shipment Import
[edit] nu 0002387 [EDI to TMS] (Shipment_Import) Tweaks/bugs
[edit] nu 0002461 [EDI to TMS] (Shipment_Import) Pending Address Use Case
[edit] 0002468: [EDI to TMS] (Shipment_Import) Log_101B_event_into_CT2_System_Log
[edit] 0002473: [EDI to TMS] (Shipment_Import) Map CT#Pick up Instructions to DocShipment@Note
[edit] 0002533: [EDI to TMS] (Shipment_Import) CT2 should NOT push CT records that already have a delivery date set
[edit] 0002522: [EDI to TMS] chg: The information that needs to go out to the carrier needs to be on the Special Instructions field
[edit] 0002542: [EDI to TMS] (Shipment_Import) Map phone number and contact name to origin & destination locations
[edit] 0002571: [EDI to TMS] (Shipment_Import) Remove empty refno value from the line item
[edit] 0002482: [EDI to TMS] What to do when passing of approved shipments from the portal into the TM Fails
This was done by adding a TMS Status to the TDS dashboard and adding TMS Status to CT records header. See above #How to know when passing of CT to TMS fails & how to send to TM for IE as well as this article: Cybertrax_2.1_Client_(requirements)#Truck_Domestic_Stats_TDS_feature.
[edit] 0002620: [EDI to TMS ph2] (Shipment_Import) Change: Add space between phone number & the extensions for origin & destination locations
[edit] 0002693: [EDI to TMS] (Shipment_Import) Change: Pass Loose Pkgs on Shipment Import as 1 line item
- If Commodity#Loose_Pkgs = 0 then create one Line Item in Descartes with Order
- Order Quantity = Commodity#Qty and Container Quantity = Commodity#Plts
- If Commodity#Loose_Pkgs > 0 & If Commodity#plts > 0 then create 2 Line Items in Descartes:
- Order Quantity = Commodity#Qty and Container Quantity = Commodity#Plts
- Order Quantity = empty and Container Quantity = Commodity# Loose Pkgs
- If Commodity Loose_Pkgs > 0 & If Commodity#plts = 0 Pass only 1 line
- Order Quantity = empty and Container Quantity = Commodity# Loose Pkgs
[edit] 0002797: [EDI to TMS] (Shipment_Import) Change Mapping of the Earliest & Latest Available Date
- Doc Shipment EarliestAvailDate from CT Created on Date to portal records Approved On Date
- Doc Shipment LatestAvailDate from CT Created on Date to portal records Approved On Date & add X days to this date - is managed via CT2 Admin >> Client Company Admin >> TMS Tab and interval is currently set to 7days
[edit] 3002: [TMS ph2 (Optimize/Streamline)] Add cargo due date to shipment import under xml attribute EarliestDelDate & LatestDelDate
Cargo due will be forwarded to TMS and 2 fields in TMS will be set accordingly - see below:
- set Earliest Delivery Date equal to Cargo Due Date set by EA Stamford planner
- set Latest Delivery Date equal to Cargo Due Date set by EA Stamford planner