Transport Export To Transport Company

Last modified by Theib Sawaf on 2022/02/25 11:55

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.

1604327547879-542.png

Consignee Configuration

You can find it under RM/Setting/Invoice Address.

1604327635745-839.png

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.

1604327833422-596.png

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!

1604327107402-365.png

Transport Properties

1538302114623-231.png

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 No

  • Transport.Text1

  • Vehicle Name

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

1544011081998-587.png

Note that the transport fields Text1-Text4 can be initialized from the latest transport. See the following setting (Initialize Text Fields) in RM/Setting.

1604328091552-705.png

Field Mapping - General

XML ElementIMPACT FieldScreenComment
GroupIdentifier"MantumGroup"  
RegisteredByCompanyIdentifierConfigFile.CompanyIdentifier  
GSINIMP_TRANSPORT.DeliveryNoteIdTransport Properties/Delivery Note Id 
Status"Booked"  
BookingDateCurrent Date  
ProjectManagerProject Settings/ProjectManagerPM/Project Properties 
ProjectInvoiceFactoryProject Settings/ProjectManagerPM/Project Properties 
ProjectReferenceProject  
FreightCompanyExternalCommunicationId"Mantum"  
FreightProductExternalCommunicationId<PriceList.ExternalName>/Empty  
ShippingReference<Project>, <ProjectName>  
PaymentBy"Sender"  
RequestedDepartureDateIMP_TRANSPORT.LOAD_DATETransport Properties/Load Date 
PickUpInstructionsLass nr <Transport No>, <IMP_TRANSPORT.TEXT1> <vehicleName>Transport Properties/Text1 
ShipmentInstructionsIMP_TRANSPORT.DELIVERY_DISTANCETransport Properties/Delivery Distance (km)If SendTransportText2And3 is set to No

ShipmentInstructions

IMP_TRANSPORT.TEXT2 If SendTransportText2And3 is set to Yes
DeliveryReferenceisIMP_TRANSPORT.TEXT3 If SendTransportText2And3 is set to Yes
DeliveryDateIMP_TRANSPORT.Delivery_Date  
TimeOfDeliveryIMP_TRANSPORT.Delivery_Date("HH:mm:ss")"HH:mm:ss" 
Consignee/PartyIdentifierconsigneeAddress.Text1PM/Settings/Invoice address 
Consignee/PartyNameconsigneeAddress.Text2PM/Settings/Invoice address 
Consignee/NameconsigneeAddress.DescriptionPM/Settings/Invoice address 
Consignee/Street1consigneeAddress.StreetPM/Settings/Invoice address 
consignee/Street2consigneeAddress.Street2PM/Settings/Invoice address 
consignee/CityNameconsigneeAddress.CityPM/Settings/Invoice address 
consignee/PostalCodeconsigneeAddress.ZipCodePM/Settings/Invoice address 
consignee/CountryCodeconsigneeAddress.CountryCodePM/Settings/Invoice address 
Shipper/Text1shipperAddress.Text1Factory pickup address in RM/Settings/Factories 
Shipper/Text2shipperAddress.Text2Factory pickup address in RM/Settings/Factories 
Address/Street1shipperAddress.StreetFactory pickup address in RM/Settings/Factories 
Address/Street2shipperAddress.Street2Factory pickup address in RM/Settings/Factories 
Address/CityNameshipperAddress.CityFactory pickup address in RM/Settings/Factories 
Address/PostalCodeshipperAddress.ZipCodeFactory pickup address in RM/Settings/Factories 
Address/CountryCodeshipperAddress.CountryCodeFactory pickup address in RM/Settings/Factories 
Pickup/Address == Shipper/Address Factory pickup address in RM/Settings/Factories 
Delivery/NamedeliveryAddress.NameTransport Properties/delivery addressFirst address
Delivery/Street1deliveryAddress.Street1Transport Properties/delivery address 
Delivery/Street2deliveryAddress.Street2Transport Properties/delivery address 
Delivery/CityNamedeliveryAddress.CityNameTransport Properties/delivery address 
Delivery/PostalCodedeliveryAddress.ZipCodeTransport Properties/delivery address 
Contact/NamedeliveryContact.NameTransport Properties/Contact.NameFirst contact
Contact/PhoneNumberdeliveryContact.Phone1Transport Properties/Contact.Phone1 

Field Mapping - Element information

Condition != ConfigFile.CimProductionFactory exist and ProductionFactoryId == ConfigFile.CimProductionFactory

XMLElementStock ItemsAdditional/Other
GoodsItem/Unit"Volume. Dim.""Volume. Dim.""Volume. Dim."
GoodsItem/NumberOfColliesCountCountCount
GoodsItem/LengthLength / 10Length / 10Length / 10
GoodsItem/WidthWidth / 10Width / 10Width / 10
GoodsItem/HeightHeight / 10Height / 10Height / 10
GoodsItem/WeightMass * 1000* CountMass * 1000 * CountMass * 1000 * Count
GoodsItem/DescriptionElement Type (e.g: W, B)ProductDescription
GoodsItem/GoodsMarkMarkElement MarkDescription

Field Mapping - Special Element Information (Formslab)

Condition = ConfigFile.CimProductionFactory exist and ProductionFactoryId == ConfigFile.CimProductionFactory

XMLElementStock ItemsAdditional/Other
GoodsItem/Unit"Volume. Dim.""Volume. Dim.""Volume. Dim."
GoodsItem/NumberOfColliesCountCountCount
GoodsItem/LengthMax(Length) / 10Length / 10Length / 10
GoodsItem/WidthMax(Width) / 10Width / 10Width / 10
GoodsItem/HeightMax(Height)/ 10Height / 10Height / 10
GoodsItem/WeightSum(Mass * 1000)Mass * 1000 * CountMass * 1000 * Count
GoodsItem/Description"Plattbärlag"ProductDescription
GoodsItem/GoodsMarkTransport No + ", " + Stack IdElement MarkDescription

 

Tags:
Copyright 2024 StruSoft AB
IMPACT Wiki