Shipment Import
From UG
Mantis
0002455: [EDI to TMS] (Shipment_Import) .............. <parent>
Prerequisites
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
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>
Schema
see http://mantis.jaguarfreight.com/mantis/file_download.php?file_id=1577&type=bug
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
Pending Address Use Case
This is related to Cybertrax_2.1_Client_(requirements)#New_Pending_Address_.28NPA.29_Feature.
Before sh....
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.
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>
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
- d) log this 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.
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.
parmDocEnvelope
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"
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
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
DSGReferenceNumbers
Used to define any needed reference number
Example:
<DSGReferenceNumbers RefNoType="Stack Pallets" Value="Yes" />
Not in use for now.
DSGShipmentAccessorial
Used to assign accessorials that are needed for a shipment
Example:
<DSGShipmentAccessorial AccName="Hazardous" />
Not in use.
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:
- ContainerQuantity // map to: Commodity#HU
- Description // map to: Commodity#Description
- TotalLineItemWeight // map to: Commodity#Gross_Lb
- WgtUOM // map to: Commodity#Gross_Unit
- ContainerType // map to: for now default to "Other" // TBD!!!!!!!!
- LineItemNumber // map to: number of lines in Commodity table
DSGReferenceNumbers
Example:
<DSGReferenceNumbers RefNoType="Order Pieces" Value="200 Pieces" />
Not in use.