Mantum Transport Export
Format
Transport with status Call-Off are exported to MANTUM using XML format.
Configuration
<!-- Transport Export to transport company (DHL, MANTUM, ...) -->
<!-- Destination directory, Eg: "C:\IMPACT\" or "ftp://ftp.xxx.com/inbox" -->
<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" />
<add key="CompanyIdentifier" value="StruSoft" />
<!-- UseProjectInvoiceFactory: set to yes if you want ProjectManager and ProjectInvoiceFactory to added to Consignee 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 9, , Bygel 27 ton.TS</PickUpInstructions> -->
<add key="UseVehicleName" value="YES" />
<add key="FreightProductExternalCommunicationId" value="7301" />
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 Consignee 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 by tsa</ProjectManager>
<ProjectInvoiceFactory>Malmö fbk</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.
Example of XML file from IMPACT that contains transport information
<Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.capma.se/XMLSchema/2010/Envelope">
<Head xmlns="">
<Identification>Test</Identification>
<MessageType>TMBooking</MessageType>
<Action>Create</Action>
<ResponseType>None</ResponseType>
</Head>
<Body xmlns:q1="http://www.capma.se/XMLSchema/2010/TMBooking" xsi:type="q1:TMBooking" xmlns="">
<ConsignmentHeader>
<GroupIdentifier>TransportCompanyGroup</GroupIdentifier>
<RegisteredByCompanyIdentifier>STRUSOFTPREFABAB</RegisteredByCompanyIdentifier>
<GSIN>1031970</GSIN>
<Status>Booked</Status>
<BookingDate>2017-10-20T11:10:00.9479442+02:00</BookingDate>
</ConsignmentHeader>
<ForwarderService>
<FreightCompanyExternalCommunicationId>TransportCompany</FreightCompanyExternalCommunicationId>
<FreightProductExternalCommunicationId>7301</FreightProductExternalCommunicationId>
<PaymentBy>Sender</PaymentBy>
<ShippingReference> 1507, MG Svensson Kalle</ShippingReference>
<RequestedDepartureDate>2017-12-29T08:00:00</RequestedDepartureDate>
<PickUpInstructions>Lass nr 1,13,6flmexklB=3,18Följebil, Trailer </PickUpInstructions>
<ShipmentInstructions>0</ShipmentInstructions>
<DeliveryDate>2017-12-29T08:00:00</DeliveryDate>
<TimeOfDelivery>08:00:00</TimeOfDelivery>
</ForwarderService>
<Shipper>
<PartyIdentifier>StruSoft</PartyIdentifier>
<PartyName>StruSoft AB</PartyName>
<Address>
<Name>Fabrik</Name>
<Street1>Malmögatan 2A</Street1>
<CityName>Stad</CityName>
<PostalCode>641 49</PostalCode>
</Address>
</Shipper>
<Consignee>
<PartyIdentifier>STRUSOFT</PartyIdentifier>
<PartyName>STRUSOFT Prefab AB</PartyName>
<Address>
<Name>STRUSOFT Prefab AB</Name>
<Street1>Kalles Väg</Street1>
<Street2>.</Street2>
<CityName>Göteborg</CityName>
<PostalCode>xxx xx</PostalCode>
<CountryCode>SE</CountryCode>
</Address>
</Consignee>
<Pickup>
<Address>
<Name>Fabrik</Name>
<Street1>Elgatan 2A</Street1>
<CityName>Lund</CityName>
<PostalCode>641 39</PostalCode>
</Address>
</Pickup>
<Delivery>
<Address>
<Name>Frank Franksson</Name>
<Street1>Eklandagatan/Viktor Rydbergsgatan</Street1>
<CityName>Göteboerg</CityName>
<PostalCode>412 55</PostalCode>
<CountryCode>SE</CountryCode>
</Address>
<Contact>
<Name>Frank Franksson</Name>
<PhoneNumber>010 99 99 33</PhoneNumber>
</Contact>
</Delivery>
<GoodsItem>
<Unit>Volume. Dim.</Unit>
<NumberOfCollies>1</NumberOfCollies>
<Length>566</Length>
<Width>18</Width>
<Height>382</Height>
<Weight>9350</Weight>
<Description>Linked</Description>
<GoodsMark>V1</GoodsMark>
</GoodsItem>
<GoodsItem>
<Unit>Volume. Dim.</Unit>
<NumberOfCollies>4</NumberOfCollies>
<Length>611</Length>
<Width>26</Width>
<Height>250</Height>
<Weight>24120</Weight>
<Description>Linked</Description>
<GoodsMark>W1</GoodsMark>
</GoodsItem>
</Body>
</Envelope>
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!
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) | |
DeliveryDate | IMP_TRANSPORT.Delivery_Date | ||
TimeOfDelivery | IMP_TRANSPORT.Delivery_Date("HH:mm:ss") | "HH:mm:ss" | |
Consignee/PartyIdentifier | consigneeAddress.Text1 | PM/Settings/Consignee address | |
Consignee/PartyName | consigneeAddress.Text2 | PM/Settings/Consignee address | |
Consignee/Name | consigneeAddress.Description | PM/Settings/Consignee address | |
Consignee/Street1 | consigneeAddress.Street | PM/Settings/Consignee address | |
consignee/Street2 | consigneeAddress.Street2 | PM/Settings/Consignee address | |
consignee/CityName | consigneeAddress.City | PM/Settings/Consignee address | |
consignee/PostalCode | consigneeAddress.ZipCode | PM/Settings/Consignee address | |
consignee/CountryCode | consigneeAddress.CountryCode | PM/Settings/Consignee 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 |