Transport Export To Transport Company
Contents
The export file contains transport information (delivery note id, delivery address, element dimensions, mass, etc).
The destination can either be a directory on the file system or an FTP directory with credentials provided in the config file.
After the export elements are signed as exported (IMP_TRANSPORT_PLANNING.IsReported2 = 1)
Note that transports can be resent/updated to the transport company by setting transport status to a lower status then back to call-off.
This changed IsReported2 to 0 that is why it is exported again.
Transports have a unique Delivery Note Id (i.e GSIN in the XML file) that is shared with the transport company.
The transport export gets information from the project properties e.g. Project Manager, Project Invoice Factory.
Configuration
<!-- Transport Export to transport company (C4, MANTUM, ...) -->
<!-- Destination directory, Eg: "C:\IMPACT\" or "ftp://ftp.xxx.com/inbox" -->
<!-- If the transport contains a transport company then the exported file will be placed under subdirectory with the same name as the transport company -->
<!-- If ExclusiveTransportCompany is not empty the file are placed at the root directory (no subfolders are used) -->
<add key="TransportCompanyDirectory" value="C:\IMPACT\StruSoft\TransportCompanyDelivery\Out" />
<!-- <add key="TransportCompanyDirectory" value="ftp://ftp.interlockframework.com/shipment/Inbox" /> -->
<add key="FtpUserName" value="TestUser" />
<add key="FtpPassword" value="TestUserpw" />
<!-- RegisteredByCompanyIdentifier: set to your producing company name to be shown in the xml file. -->
<add key="CompanyIdentifier" value="StruSoft" />
<!-- UseProjectInvoiceFactory: set to yes if you want ProjectManager and ProjectInvoiceFactory to be added to ConsignmentHeader element. -->
<add key="UseProjectInvoiceFactory" value="Yes" />
<!-- UseVehicleName: set to yes if you want to append vehicle name defined in Recoure Manager/Settings/Transport Vehicles to PickUpInstructions after second comma -->
<!-- <PickUpInstructions> Lass nr <No>, <Transport-Text1> , Bygel 27 ton</PickUpInstructions> -->
<add key="UseVehicleName" value="YES" />
<!-- ShipmentInstructions -->
<!-- If UseStackTypeInShipmentInstructions = "YES" then the stack type is written to the xml element ShipmentInstructions. Available Stack Types:UNDEFINED, HORIZONTAL, VERTICAL, RACK -->
<!-- Example 1 Single stack: <ShipmentInstructions>VERTICAL</ShipmentInstructions> -->
<!-- Example 2 multiple stacks (only unique types are shown): <ShipmentInstructions>VERTICAL/HORIZONTAL</ShipmentInstructions> -->
<add key="UseStackTypeInShipmentInstructions" value="YES"/>
<!-- If UseStackTypeInShipmentInstructions = "No" and UseTransportText2 = "YES" ShipmentInstructions is set to Transport.Text2 if not-empty otherwise Transport.DeliveryDistance -->
<!-- Example: <ShipmentInstructions>Text2Info</ShipmentInstructions> -->
<add key="UseTransportText2" value="YES"/>
<!-- DeliveryReference -->
<!-- If UseTransportText3 = "YES", DeliveryReference is set to Transport.Text3 if it's not empty-->
<!-- <DeliveryReference>Transport-Text3</DeliveryReference> -->
<add key="UseTransportText3" value="YES"/>
<!-- Export to transport company (and even ERP Delivery export) flag. Form Slab Factory Id. Stacks info is presented with max dims in the xml file. Default (0) -->
<add key="CimProductionFactoryId" value="0"/>
<!-- ExclusiveTransportCompany. Transport company exports (xml file) are only sent to the one defined here. Default "" and all transports are exported. No subdirectory is used. -->
<add key="ExclusiveTransportCompany" value="C4"/>
<!-- FreightProductExternalCommunicationId: The value of this Id can be decided by transport company. -->
<add key="FreightProductExternalCommunicationId" value="7301" />
The table below shows how the xml element ShipmentInstructions is filled.
ShipmentInstructions | UseStackTypeInShipmentInstructions | UseTransportText2 | Empty Transport Text2 |
Stack Type | Yes | - | - |
TransportText2 | No | Yes | No |
Transport.DeliveryDistance | No | No | - |
Description
The destination can either be a directory on the file system or an FTP directory with credentials provided in the config file.
After the export elements are signed as exported (IMP_TRANSPORT_PLANNING.IsReported2 = 1)
Note that transports can be resent/updated to the transport company by setting transport status to a lower status then back to call-off.
This changed IsReported2 to 0 that is why it is exported again.
Transports have a unique Delivery Note Id that is shared with the transport company.
The transport export to MANTUM gets information from the project properties e.g. Project Manager, Project Invoice Factory, see the figure below.
Consignee Configuration
You can find it under RM/Setting/Invoice Address.
IMPACT Sync Config-file
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!-- WebApi Address -->
<add key="WebApi" value="http://localhost:81/STRUSOFTWebApi15/" />
<!-- Security -->
<add key="SecurityServer" value="http://localhost:81/STRUSOFTOpenIdServer15/" />
<add key="UserName" value="xxxxxxx" />
<add key="Password" value="yyyyyyyyy" />
<add key="SecuritySecret" value="secret" />
<!-- Production Company Id, Skanska:1XXX, STRUSOFT:1XXX -->
<add key="ProductionCompanyId" value="1XXX" />
<!-- Transport Export to transport company (DHL, TRANSPORTCOMPANY, ...) -->
<!-- Destination directory, Eg: "C:\IMPACT\" or "ftp://ftp.xxx.com/inbox" -->
<add key="TransportCompanyDirectory" value="ftp://ftp.testxxxframework.com/shipment/inbox" />
<!-- <add key="TransportCompanyDirectory" value="C:\IMPACT\StruSoft\TransportCompanyDelivery\Out" /> -->
<add key="FtpUserName" value="STRUSOFTPrefabTestUser" />
<add key="FtpPassword" value="STRUSOFTPrefab69741!" />
<add key="CompanyIdentifier" value="STRUSOFTPREFABAB"/>
<!-- UseProjectInvoiceFactory set to yes if you want ProjectManager and ProjectInvoiceFactory to added to ConsignmentHeader element. -->
<add key="UseProjectInvoiceFactory" value="NO" />
<!-- UseVehicleName: set to yes if you want to append vehicle name defined in Recoure Manager/Settings/Transport Vehicles to PickUpInstructions after second comma -->
<!-- <PickUpInstructions>Lass nr 9, , Bygel 27 ton.TS</PickUpInstructions> -->
<add key="UseVehicleName" value="YES" />
<add key="FreightProductExternalCommunicationId" value="7301" />
<!-- Cost calculation filter: Limit calculation to certain standard(s) and project(s) -->
<add key="CostCalcFactory" value="" />
<add key="CostCalcProjectPrefix" value="P330" />
---------------------------------
For production use the following ftp user name and password:
<add key="FtpUserName" value="STRUSOFTPrefabUser" />
<add key="FtpPassword" value="STRUSOFTPrefab85942!" />
ConsignmentHeader XML Element
<Body xmlns:q1="http://www.capma.se/XMLSchema/2010/TMBooking" xsi:type="q1:TMBooking" xmlns="">
<ConsignmentHeader>
<GroupIdentifier>MantumGroup</GroupIdentifier>
<RegisteredByCompanyIdentifier>StruSoft</RegisteredByCompanyIdentifier>
<GSIN>1032192</GSIN>
<Status>Booked</Status>
<BookingDate>2018-05-17T11:22:06.2136402+02:00</BookingDate>
<ProjectManager>Adam Adamsson</ProjectManager>
<ProjectInvoiceFactory>Malmö Fabriken</ProjectInvoiceFactory>
<ProjectReference>1500</ProjectReference>
</ConsignmentHeader>
Shipper Address Configuration
Can be found under RM/Setting/Factory and RM/Setting/Addresses.
Note that the shipper address and pickup address used in the XML are mapped to the factory pickup address, see the dialog below.
Requirements
Each transport must have a delivery address and a contact. When creating a new transport all project delivery addresses and contacts are copied to it.
Here are all the requirements
- Transport delivery address
- Transport delivery contact
- Consignee address (company invoice address)
- Factory pickup address
- Factory shipping address (Shipper)
- Logged Errors
Message Log view
In Resource Manager/Settings/Message Log view you can find the the errors/warnings/information written by the IMPACT Sync, see the figure below.
You can search for errors using the Search Text field in the filter.
Eg:
No project contact available for project
No project address available for project
No factory pickup address found!
No consignee address (company invoice address) found!
Transport Properties
if the config file entry SendTransportText2And3 is set to Yes then
ShipmentInstructions is set to Transport.Text2
DeliveryReferenceis set to Transport.Text3
otherwise
ShipmentInstructions is set to Transport.DeliveryDistance
Field Name in XML | Field Source in IMPACT | Example |
PickUpInstructions |
Transport Module/Transport No, Text1, Vehicle Name Vehicle Name is added if the following is set to YES in the config-file <add key="UseVehicleName" value="YES" /> | Lass nr 1,13,6flmexklB=3,18Följebil, Trailer |
Shipper/PartyIdentifier | Factory Address/Text1 (RM/Settings/Factories/Pickup/Addresses/Text1) | StruSoft |
Shipper/PartyName | Factory Address/Text2 (RM/Settings/Factories/Pickup/Addresses/Text2) | StruSoft AB |
Consignee/PartyIdentifier | Consignee Address/Text1 (RM/Settings/Invoice Address/Text1) | StruSoft |
Consignee/PartyName | Consignee Address/Text2 (RM/Settings/Invoice Address/Text2) | StruSoft AB |
Note that the transport fields Text1-Text4 can be initialized from the latest transport. See the following setting (Initialize Text Fields) in RM/Setting.
Field Mapping - General
XML Element | IMPACT Field | Screen | Comment |
GroupIdentifier | "MantumGroup" | ||
RegisteredByCompanyIdentifier | ConfigFile.CompanyIdentifier | ||
GSIN | IMP_TRANSPORT.DeliveryNoteId | Transport Properties/Delivery Note Id | |
Status | "Booked" | ||
BookingDate | Current Date | ||
ProjectManager | Project Settings/ProjectManager | PM/Project Properties | |
ProjectInvoiceFactory | Project Settings/ProjectManager | PM/Project Properties | |
ProjectReference | Project | ||
FreightCompanyExternalCommunicationId | "Mantum" | ||
FreightProductExternalCommunicationId | <PriceList.ExternalName>/Empty | ||
ShippingReference | <Project>, <ProjectName> | ||
PaymentBy | "Sender" | ||
RequestedDepartureDate | IMP_TRANSPORT.LOAD_DATE | Transport Properties/Load Date | |
PickUpInstructions | Lass nr <Transport No>, <IMP_TRANSPORT.TEXT1> <vehicleName> | Transport Properties/Text1 | |
ShipmentInstructions | IMP_TRANSPORT.DELIVERY_DISTANCE | Transport Properties/Delivery Distance (km) | If SendTransportText2And3 is set to No |
ShipmentInstructions | IMP_TRANSPORT.TEXT2 | If SendTransportText2And3 is set to Yes | |
DeliveryReferenceis | IMP_TRANSPORT.TEXT3 | If SendTransportText2And3 is set to Yes | |
DeliveryDate | IMP_TRANSPORT.Delivery_Date | ||
TimeOfDelivery | IMP_TRANSPORT.Delivery_Date("HH:mm:ss") | "HH:mm:ss" | |
Consignee/PartyIdentifier | consigneeAddress.Text1 | PM/Settings/Invoice address | |
Consignee/PartyName | consigneeAddress.Text2 | PM/Settings/Invoice address | |
Consignee/Name | consigneeAddress.Description | PM/Settings/Invoice address | |
Consignee/Street1 | consigneeAddress.Street | PM/Settings/Invoice address | |
consignee/Street2 | consigneeAddress.Street2 | PM/Settings/Invoice address | |
consignee/CityName | consigneeAddress.City | PM/Settings/Invoice address | |
consignee/PostalCode | consigneeAddress.ZipCode | PM/Settings/Invoice address | |
consignee/CountryCode | consigneeAddress.CountryCode | PM/Settings/Invoice address | |
Shipper/Text1 | shipperAddress.Text1 | Factory pickup address in RM/Settings/Factories | |
Shipper/Text2 | shipperAddress.Text2 | Factory pickup address in RM/Settings/Factories | |
Address/Street1 | shipperAddress.Street | Factory pickup address in RM/Settings/Factories | |
Address/Street2 | shipperAddress.Street2 | Factory pickup address in RM/Settings/Factories | |
Address/CityName | shipperAddress.City | Factory pickup address in RM/Settings/Factories | |
Address/PostalCode | shipperAddress.ZipCode | Factory pickup address in RM/Settings/Factories | |
Address/CountryCode | shipperAddress.CountryCode | Factory pickup address in RM/Settings/Factories | |
Pickup/Address == Shipper/Address | Factory pickup address in RM/Settings/Factories | ||
Delivery/Name | deliveryAddress.Name | Transport Properties/delivery address | First address |
Delivery/Street1 | deliveryAddress.Street1 | Transport Properties/delivery address | |
Delivery/Street2 | deliveryAddress.Street2 | Transport Properties/delivery address | |
Delivery/CityName | deliveryAddress.CityName | Transport Properties/delivery address | |
Delivery/PostalCode | deliveryAddress.ZipCode | Transport Properties/delivery address | |
Contact/Name | deliveryContact.Name | Transport Properties/Contact.Name | First contact |
Contact/PhoneNumber | deliveryContact.Phone1 | Transport Properties/Contact.Phone1 |
Field Mapping - Element information
Condition != ConfigFile.CimProductionFactory exist and ProductionFactoryId == ConfigFile.CimProductionFactory
XML | Element | Stock Items | Additional/Other |
GoodsItem/Unit | "Volume. Dim." | "Volume. Dim." | "Volume. Dim." |
GoodsItem/NumberOfCollies | Count | Count | Count |
GoodsItem/Length | Length / 10 | Length / 10 | Length / 10 |
GoodsItem/Width | Width / 10 | Width / 10 | Width / 10 |
GoodsItem/Height | Height / 10 | Height / 10 | Height / 10 |
GoodsItem/Weight | Mass * 1000* Count | Mass * 1000 * Count | Mass * 1000 * Count |
GoodsItem/Description | Element Type (e.g: W, B) | Product | Description |
GoodsItem/GoodsMark | Mark | Element Mark | Description |
Field Mapping - Special Element Information (Formslab)
Condition = ConfigFile.CimProductionFactory exist and ProductionFactoryId == ConfigFile.CimProductionFactory
XML | Element | Stock Items | Additional/Other |
GoodsItem/Unit | "Volume. Dim." | "Volume. Dim." | "Volume. Dim." |
GoodsItem/NumberOfCollies | Count | Count | Count |
GoodsItem/Length | Max(Length) / 10 | Length / 10 | Length / 10 |
GoodsItem/Width | Max(Width) / 10 | Width / 10 | Width / 10 |
GoodsItem/Height | Max(Height)/ 10 | Height / 10 | Height / 10 |
GoodsItem/Weight | Sum(Mass * 1000) | Mass * 1000 * Count | Mass * 1000 * Count |
GoodsItem/Description | "Plattbärlag" | Product | Description |
GoodsItem/GoodsMark | Transport No + ", " + Stack Id | Element Mark | Description |