Professional Documents
Culture Documents
Transportation
Management System
Implementation Guide
Transportation
Management System Implementation Guide
White
paper
White paper
October 2014
This document provides functional and technical
guidance to users who seek to implement or use
the transportation management system provided
as part of Microsoft Dynamics AX 2012 R3.
1
www.microsoft.com/dynamics/ax
Send feedback.
Contents
Additional resources
Audience
Overview of features
5
5
1. Setup requirements
1.1
9
9
9
9
10
10
10
10
11
11
12
12
16
16
18
19
25
25
26
26
27
28
29
30
31
31
31
32
34
36
36
36
37
37
42
42
42
42
42
43
43
45
2.1.1
2.1.2
2.1.3
2
Transportation Management System Implementation Guide
White paper
45
46
46
46
47
48
50
50
4. Appendix
51
51
3
Transportation Management System Implementation Guide
White paper
Additional resources
Use the following links to access blog posts and white papers on the subjects not covered in this document or resources
that provide supplemental guidance:
4
Transportation Management System Implementation Guide
White paper
Audience
The audience of this document is implementation consultants and users who want to analyze the transportation
situation at a company and perform the setup that is required in order to use the TMS in Microsoft Dynamics AX 2012
R3.
Overview of features
The transportation management features that are mentioned in this document are grouped in the following scenario
groups:
Setup
Transportation planning
Selection of the carrier
Freight reconciliation
Appointment scheduling
1. Setup requirements
From a user perspective, the minimum setup needed to enable the TMS module is at least one carrier that is set up with
one service. We can then assign a rate and a route to the load and ship the goods. Transportation planning is triggered
based on the demand for what needs to be transported in the form of sales orders, purchase orders, or transfer orders.
These orders can then be consolidated into loads, depending on the volume or weight which is compared to the
capacity that is set up. When the transportation and loads are planned, rating and routing can be performed to find the
least expensive transportation method or the most optimal carrier.
Before you can set up the carrier, some previous setup is needed in the transportation management parameters and
engines setup. A more detailed explanation of this setup follows.
The case studies presented in this document only discuss the setup of TMS, any additional setup that is required in
other modules will be assumed to already be set up.
5
Transportation Management System Implementation Guide
White paper
1.1
The transportation management parameters are located in Transportation management > Setup > Transportation
management parameters.
The following table shows the general parameters that are on the FastTabs in the Transportation management
parameters form.
Field
FastTab
Description
Default duration
Appointment
scheduling
The number of minutes for each appointment. You can change the
default number of minutes, depending on what the carrier will collect
and deliver.
6
Transportation Management System Implementation Guide
White paper
Field
FastTab
Description
Alert interval
Driver check-in
and check-out
Vendor invoice
Select this check box if you want to apply freight reconciliation to pay
vendors. Clear this check box if you want to match the freight bill
with the invoice amount in Microsoft Dynamics AX 2012, and then
copy the results to a system outside AX 2012.
Post journal
Vendor invoice
Select this check box to automatically post the invoice journal after
the invoice has been approved.
Vendor invoice
The text that appears on the general ledger journal line that is
generated for a freight bill.
Vendor invoice
The journal name that is selected in the General ledger field under
Setup, Journals in the Journal names form. The journal name is a
template for journals, where you maintain settings such as posting
restrictions for selected users or user groups.
Vendor invoice
Vendor invoice
Match interval
Vendor invoice
Vendor invoice
Workflow user
Vendor invoice
Hub type
Plan by shipment
Shipment
In transit planning
In transit
planning
Select this check box to enable dynamic route planning, where any
segment of a route can be assigned a distinct route.
Loads
Automatically create a
purchase order entry
Loads
Automatically create at
transfer order entry
Loads
Override outbound
shipped confirmation date
Loads
When this check box is selected, the outbound ship confirm date on
the load will be overridden.
Direct delivery
When this check box is selected, customer charges are created when
you rate the load.
Engines
Click Initialize base engine data to run a data initialization job for the
base engines.
7
Transportation Management System Implementation Guide
White paper
Before starting the setup of TMS, you can automatically initialize base engine data to create engine setup data for all
the engines that were included with Microsoft Dynamics AX 2012 R3. If you initialize the base engine data in this
manner, data is initialized per company and existing engine data that is set up in individual companies may be
disregarded.
To initialize base engine data automatically, follow these steps:
1. Click Transportation management > Setup > Transportation management parameters.
2. Under the General link, click the Engines FastTab.
3. Click the Initialize base engine data button.
This initializes all of the base engines and rate base types included with Microsoft Dynamics AX 2012 R3. The following
illustration shows the engines that are initialized.
For the Point to point mileage engine, its important to set up the postal codes from the company to the customers to
calculate distances. This engine requires that data is defined in the system in order to determine mileage between two
addresses, and needs to be set up for each destination. This can also be done using external services, such as Bing
Maps or PCMiler. For more information about how to set up these services, see Transportation management mileage
engine based on Bing maps. Also, see Third-party transportation management engines (UPS, FedEx, Progistics,
PCMiler).
8
Transportation Management System Implementation Guide
White paper
2.1
The business case for the first part of the case study analyzes a medium-sized distribution company that is in need of
organizing inbound and outbound transportation.
Mode
Truck
Truck
Rail
LTL
Ocean
Parcel
Mileage
Weight
Volume
Zones
Commodity
code
LTL classification
Flat rate
X
X
X
X
X
X
X
Accessorial charges
Carrier
Mode
Flat
Per unit
Truck
Mileage, Volume
Truck
Transit time
Rail
LTL
Ocean
Parcel
Percentage
Fuel surcharge
Percentage
Units
Mileage
Mileage
Volume
2. Setup to be done directly on the carrier form configuration (Accessorial charges columns). In the carrier form, we
need to add the structure for adding the accessorial charges when the rating for that carrier is called out.
3. The Flat rate column can be set up in the execution process, and no particular engine setup is needed.
The setup of accessorial charges in this case study will only include the flat rate set up for carrier 5. Examples of the
other accessorial charges seen in the preceding table will be included in future versions of this document. An example
of the setup of fuel surcharges is shown in section 3. Case study 2 - Engines.
2.2
Carrier setup
Before setting up shipping carriers, the rate base types, modes, transportation methods, and break masters need to be
defined.
Description
Sequence
Indicates the sequence of the lookup fields on the Rate base assignment FastTab in the Rate
master form. You can change the sequence, if needed.
Name
Enter a name for the lookup criteria. The name that you enter here is used as a lookup field
on the Rate base assignment FastTab in the Rate master form.
Field type
Data type
Lookup type
Mandatory
Select this check box to make the user-defined fields mandatory for the selected rate base
or rate base assignment.
2.2.2 Modes
The transportation modes represent the form of transport that the carrier uses for freight deliveries.
10
Transportation Management System Implementation Guide
White paper
11
Transportation Management System Implementation Guide
White paper
2.2.7.1
Czarlite
1. In the upper part of the form, click New, and then enter the following field values:
Break master = Czarlite
Name = Czarlite
Data type = Integer
Comparison = <
Break unit = Lbs
2. Expand the Details group.
3. Click New, and then, in the Value field, enter 500.
4. Click New again, and then, in the Value field, enter 1000.
5. Click New again, and then, in the Value field, enter 2000.
6. Click New again, and then, in the Value field, enter 10000.
7. Click New again, and then, in the Value field, enter 20000.
8. Click New again, and then, in the Value field, enter 30000.
9. Click New again, and then, in the Value field, enter 40000.
2.2.7.2
Empty
1. In the upper part of the form, click New, and then enter the following field values:
Break master = Empty
Name = Empty
Data type = String
2. Expand the Details group.
3. Click New, and then, in the Value field, enter Rate.
12
Transportation Management System Implementation Guide
White paper
2.2.7.3
Mileage
1. In the upper part of the form, click New, and then enter the following field values:
Break master = Mileage
Name = Mileage
Data type = Integer
Comparison = <
Break unit = Miles
2. Expand the Details group.
3. Click New, and then, in the Value field, enter 50.
4. Click New again, and then, in the Value field, enter 100.
5. Click New again, and then, in the Value field, enter 200.
6. Click New again, and then, in the Value field, enter 300.
7. Click New again, and then, in the Value field, enter 500.
8. Click New again, and then, in the Value field, enter 900.
9. Click New again, and then, in the Value field, enter 3000.
13
Transportation Management System Implementation Guide
White paper
2.2.7.4
Weight
1. In the upper part of the form, click New, and then enter the following field values:
Break master = Weight
Name = Weight
Data type = Real
Comparison = <
Break unit = lbs
2. Expand the Details group.
3. Click New, and then, in the Value field, enter 1.
4. Click New again, and then, in the Value field, enter 5.
5. Click New again, and then, in the Value field, enter 20.
6. Click New again, and then, in the Value field, enter 100.
7. Click New again, and then, in the Value field, enter 1000.
2.2.7.5
Volume
1. In the upper part of the form, click New, and then enter the following field values:
Break master = Volume
Name = Volume
Data type = Real
Comparison = <
Break unit = m3
2. Expand the Details group.
3. Click New, and then, in the Value field, enter 1.
4. Click New again, and then, in the Value field, enter 5.
5. Click New again, and then, in the Value field, enter 20.
6. Click New again, and then, in the Value field, enter 50.
7. Click New again, and then, in the Value field, enter 100.
14
Transportation Management System Implementation Guide
White paper
2.2.7.6
Piece
1. In the upper part of the form, click New, and then enter the following field values:
Break master = Piece
Name = Piece
Data type = Integer
Comparison = <=
Break unit = Pcs
2. Expand the Details group.
3. Click New, and then, in the Value field, enter 1.
4. Click New again, and then, in the Value field, enter 10.
5. Click New again, and then, in the Value field, enter 100.
6. Click New again, and then, in the Value field, enter 1000.
15
Transportation Management System Implementation Guide
White paper
Description
Shipping carrier
Use carrier
Select this check box to use the specified shipping carrier for shipment.
Mode
Vendor
Select the vendor account to which you want to assign the shipping carrier.
SCAC
Select this check box to enable automatic rating for the shipping carrier.
Transportation tenders
Optional: Select one of the following methods for updating the details of transportation
tender:
None Select this if you do not want to use any transportation tender.
Manual Manually update the transportation tender details by using the Transportation
tenders form.
EDI Automatically update the transportation tender details by using an Electronic Data
Interchange (EDI) in the Transportation tenders form.
The fields in the Service FastTab are described in the following table.
Field
Description
Carrier service
Transportation method
External code
Billing group ID
Load template ID
The fields in the Rating profile FastTab are described in the following table.
Field
Description
Rating profile
Shipping carrier
Rating engine
Rate master
If applicable, select the transit time engine to be used for the rating profile.
If applicable, select the carrier fuel index to be used for the rating profile.
2.2.9.1
Carrier 1
2.2.9.2
Carrier 2
2.2.9.3
Carrier 3
2.2.9.4
Carrier 4
2.2.9.5
Carrier 5
17
Transportation Management System Implementation Guide
White paper
Name = Carrier 5
Activate carrier rating = Yes
2. Expand the Service group.
3. Click New, and then enter the following field values:
Carrier Service = STD
Name = STD
Transportation method = Ocean
2.2.9.6
Carrier 6
At this point, only basic information regarding the carriers has been created as the transport method and service. The
information about rate masters and rating profiles will also populate the Shipping carrier form after its created.
18
Transportation Management System Implementation Guide
White paper
2.2.11.1
2.2.11.2
2.
3.
4.
5.
6.
Name = Carrier 2 RM
Rate base type = PostalZoneWeight
Expand the Rate base assignment group.
Click New.
Right-click a rate base, and then click View details.
In the upper part of the form, click New, and then enter the following field values:
Rate base = Carrier 2 RB
Name = Carrier 2 RB
Break master = Weight
Currency = USD
In the lower part of the form, click New, and then enter the following field values:
Zone = 2
< 1 lbs = 2
< 5 lbs = 9
< 20 lbs = 17
< 100 lbs = 70
< 1000 lbs = 300
2.2.11.3
20
Transportation Management System Implementation Guide
White paper
6. In the lower part of the form, click New, and then enter the following field values:
STCC = 1234567 (Standard goods)
< 1.00 m3 = 20
< 5.00 m3 = 100
< 20.00 m3 = 400
< 50.00 m3 = 1000
< 100.00 m3 = 2000
7. Click New in the lower part of the form again, and then enter the following field values:
STCC = 9999999 (Inflammable goods)
< 1.00 m3 = 40
< 5.00 m3 = 200
< 20.00 m3 = 800
< 50.00 m3 = 2000
< 100.00 m3 = 4000
2.2.11.4
2.2.11.5
22
Transportation Management System Implementation Guide
White paper
5. In the upper part of the form, click New, and then enter the following field values:
Rate base = Carrier 5 RB
Name = Carrier 5 RB
Break master = Empty
Currency = USD
6. In the lower part of the form, click New, and then enter the following field values:
Drop-off postal code from = 00001
Drop-off postal code to = 55001
Drop-off country = USA
Rate = 15
7. Click New in the lower part of the form again, and then enter the following field values:
Drop-off postal code from = 55002
Drop-off postal code to = 99950
Drop-off country = USA
Rate = 35
2.2.11.6
23
Transportation Management System Implementation Guide
White paper
6. In the lower part of the form, click New, and then enter the following field values:
Zone = 2
<= 1 Pcs = 2
<= 10 Pcs = 9
<= 100 Pcs = 85
<= 1000 Pcs = 700
24
Transportation Management System Implementation Guide
White paper
25
Transportation Management System Implementation Guide
White paper
Now that the setup of the rate profiles is done, the profiles will show up in the Rating profile FastTab in the Shipping
carrier form.
2.3
Charges setup
This section describes the setup of different charges in TMS. In order to add transportation charges to orders for
invoicing, you need to make sure this is enabled in the Terms of delivery form. The Terms of delivery form can be found
in several places, for this case study, go to Sales and marketing > Setup > Distribution > Terms of delivery.
For the delivery term that you plan to use, select the check box for Add transportation charges to orders.
You need to do this for all of the delivery terms where you want to add transportation charges to orders. If youre using
demo data, you might also need to change the preferred mode of delivery for each customer in order to receive rates
for other carriers when performing rate shopping.
26
Transportation Management System Implementation Guide
White paper
The accessorial assignment is what defines the fees that apply to each accessorial charge. You can associate a shipping
carrier with one or more accessorial assignments, for example you can have both fuel surcharges based on mileage and
a flat fee surcharge to apply to specific warehouses under a specific period.
The available options for the accessorial fee type are described in the following table.
Option
Description
Flat
Per unit
The accessorial charge is calculated per unit of measure for the fuel charge.
If you select this field, the following fields become available:
Accessorial unit - Select a rating engine method.
Accessorial unit divisor Optional: Select a divisor.
Maximum charge and Minimum charge - Optional: Enter the maximum and
minimum accessorial charges.
Currency - Optional: Change the currency that is derived from the shipping carrier.
Percentage
Fuel surcharge
27
Transportation Management System Implementation Guide
White paper
The next step is to associate a shipping carrier with information such as carrier service, an accessorial master, and a
billing group. This is done by setting up carrier accessorial charges.
Go to Transportation management > Setup > Rating > Carrier accessorial charges.
1. Click New and then enter the following field values:
Carrier accessorial ID = Carrier 5
Shipping carrier = Carrier 5
Carrier service = STD
Accessorial master = Carrier5Accessorial
External code = AAA
Billing group ID = Fuel
Accessorial delivery type = None
2.3.2.1
1. Click New and then enter the following field values on the Details FastTab:
Name = Carrier 5 Charge
Accessorial master = Carrier5Accessorial
Shipping carrier = Carrier 5
Carrier accessorial ID = Carrier 5
Billing group ID = Fuel
External code = AAA
2. On the Criteria FastTab, clear the Always apply check box. If selected, fuel surcharges will always be calculated for the
selected accessorial fee type with the current set of filter criteria.
3. On the Calculation FastTab, enter the following values:
Accessorial fee type = Flat
Accessorial fee = 50.00
Currency = USD
If you select the Allow a discount check box, you use a shipper rate or a customer rate when accessorial charges are
calculated.
Carrier 5 now has flat fee of 50 USD as an accessorial charge, which is used when you rate a shipment.
28
Transportation Management System Implementation Guide
White paper
The following tables describes the fields on the Miscellaneous charges form.
Field
Description
Charges module
Select what charges module to apply to the charges. For instance, if you select customer,
the charge definition will only apply to the accounts receivable and will take effect when
creating charges associated with sales order lines.
Charges code
Select to determine the effective credit and debit account that will apply to the freight
charge.
Miscellaneous charge
type
Select the miscellaneous charge type to apply to the charges. This field decides which
charge code to use for specific type of rates. Select one of the following types:
None Select if you want the total rate charge to be applied to the order.
Customer Select if you have a customer specific rate generated (for example, through
discounts or override charges) and want a separate miscellaneous charge to be added
on your source document lines for that rate.
Shipper Select if you have a vendor specific rate generated (for example, through
vendor discounts) and want a separate miscellaneous charge to be added on your
source document line for that rate.
Site
Warehouse
Carrier service
Accessorial master
Optional: Specify an accessorial master that the miscellaneous charges should apply to.
Delivery terms
Optional: Specify a delivery term that the miscellaneous charge should apply to.
Transportation method
Optional: Specify a transportation method that the miscellaneous charges should apply to.
Mode
Optional: Specify a mode that the miscellaneous charges should apply to.
Invoice account
Optional: Specify to which customer invoice account the particular miscellaneous charge
definition applies.
Ignore
29
Transportation Management System Implementation Guide
White paper
2.4
Discounts
You can set up discounts to apply when performing rating and routing for shipments. Discounts can be set up to apply
to certain shipping carriers, vendor accounts, dimensions, geographic locations, or customers. They can also be set up
for a specific percentage of the shipping costs or a specific amount. The discount will be applied, show up in the rating
and routing, and eventually appear on the freight bill.
To set up discounts, go to Transportation management > General > Discounts.
30
Transportation Management System Implementation Guide
White paper
2.5
Routing setup
Routing setup is for advanced scenarios when a company manages the entire transportation process.
This section describes how to set up a route plan and routing guide that you can use for complex transportation
processes. Route plans contain route segments that provide information about freight delivery. You must select route
plans in order to set up a routing guide. The routing guide defines the transportation route.
31
Transportation Management System Implementation Guide
White paper
32
Transportation Management System Implementation Guide
White paper
7. In the rightmost pane, on the Condition FastTab, specify the conditions for the item constraint.
8. In the Constraint action field, select either Warn or Restrict to trigger a warning message or restrict the
transportation coordinator from assigning a route when the conditions for the items constraints are met in the Rate
route workbench form.
33
Transportation Management System Implementation Guide
White paper
2.6
The load building workbench is a new functionality in transportation management introduced in Microsoft Dynamics AX
2012 R3 Cumulative Update 8. The prerequisite for using load building workbench is that the products and warehouses
that are included in the sales orders must be enabled for Warehouse management processes. You must also create one
or more load templates because when you generate proposed loads, load building strategies use the attributes defined
on the load template to determine what to put in each load.
Go to Transportation management > Inquiries > Load building workbench.
You can also access the load building workbench by going to Transportation management > Inquiries > Load planning
workbench. On the Action Pane, click Load building workbench.
34
Transportation Management System Implementation Guide
White paper
The fields on the Setup FastTab are explained in the following table.
Field
Description
Load building template
Select the template to use to generate the proposed loads, or enter a name for a new
template.
Select the strategy that contains the criteria to apply when generating the proposed loads.
Sales orders are currently the only supported type in this field.
Customer account
Optional: Specify a customer account if you want to propose loads to a single customer.
Optional: You can specify the ranges of criteria to control what goes into the load. For
example, you can specify ranges of shipping and delivery dates, postal codes, country and
region, and sites and warehouses.
Filter codes
In the Load templates FastTab you can select the load template to use to generate proposed loads. Use the Move up
and Move down buttons to arrange them in the sequence in which you want them to be evaluated.
35
Transportation Management System Implementation Guide
White paper
2.7
Appointment scheduling
2.7.2 Setup
To set up the appointment scheduling functionality, we first need to set up the default duration in the transportation
management parameters:
1. Go to Transportation management > Setup > Transportation management parameters.
2. On the General tab, under Appointment scheduling, set the default duration of the appointment.
Next, we need to set up the appointment types:
1. Go to Transportation management > Setup > Appointment scheduling > Appointment types.
The fields in the Appointment types form are described in the following table.
Field
Description
Appointment type
Site
Warehouse
Duration
Number of calendar
slots
Enter the number of appointments that can be performed at the same time for the
specified appointment type
Driver check-in
required
Select this check box if the driver is required to check-in when arriving for an appointment.
Item movement
direction
Location profile ID
Duration
Number of
calendar
slots
Inbound
30
Inbound
Outbound
40
Outbound
Appointment type
Site
Warehouse
Driver
check-in
required
Item
movement
direction
Location
profile ID
36
Transportation Management System Implementation Guide
White paper
If you have site and warehouse information configured, you can add that in your configuration as well. Appointment
scheduling is now set up.
Optionally you may set up appointment notifications as a batch job to track upcoming appointments.
1. Go to Transportation management > Periodic > Appointment notifications.
2. In the Appointment notifications form, create or modify the recurrence and set up alerts for the batch job.
2.8
Freight reconciliation
This section explains how to set up freight reconciliation parameters. When they are set up, you can match freight bills
that are generated in Microsoft Dynamics AX with invoices that are received from shipping carriers, and perform
reconciliation if there are any differences between these documents. You can either use an automatic or a manual
process for freight reconciliation. The following illustration shows the process of generating a freight invoice and
performing freight reconciliation.
37
Transportation Management System Implementation Guide
White paper
The preceding illustration shows that you can generate a freight invoice from freight bills, and update the generated
freight invoice with the details from the carrier invoice that is received from a freight vendor. Next, you match the
updated invoice lines with freight bills and if the total freight invoice amount is matched with the freight bill, you submit
the freight invoice for payment. If it is not matched, you reconcile the unmatched invoice lines with a reconciliation
reason code. You then submit the reconciled freight invoice for payment. If required, you can discard unmatched freight
bills that do not have a carrier invoice with a reconciliation reason code.
To set up the freight reconciliation, we need to create reconciliation reasons:
1. Go to Transportation management > Setup > Freight reconciliation > Reconciliation reasons.
2. Enter the following field values.
Reconciliation
reason code
Description
Debit account
Approved
Approved
211650
Damage claim
Damage claim
211650
FB Underage
FB Underage
211650
FB Mapping
FB Mapping
211650
Override
accounts
Yes
No
200110
No
No
200110
No
Yes
Yes
No
Credit account
The Reconciliation reasons form is used to set up reason codes for unmatched freight bills. If an invoice amount does
not match the related freight bill, you can use these reason codes to reconcile the different amounts. The fields in the
Reconciliation reasons form are described in the following table.
Field
Description
Reconciliation reason
code
Description
Debit account
Select the Debit account that is used to pay the reconciled amount to the freight vendor.
Credit account
Select the Credit account that is used to post to the general ledger account. You can only
select a value in this field if the Pay the freight vendor check box is not selected.
38
Transportation Management System Implementation Guide
White paper
Field
Description
Select the Pay the freight vendor check box to pay the reconciled amount to the vendor.
If you select a debit account and the Pay the freight vendor check box is not selected, you
must specify a ledger account in the account field for the non-payment of freight.
If you select a credit account, the following processes will be used during financial posting
for reconciliation:
If the Pay the freight vendor check box is selected, the credit is posted against the
freight vendor to create a payable account.
If the Pay the freight vendor check box is not selected, the ledger account is taken from
the reason code.
Override accounts
Select the Override accounts check box to override the charges that are posted to the debit
account type that is specified in the Charges code form for the original sales order line or
purchase order line. The charges are posted to the accounts specified in the Reconciliation
reasons form.
If you select a debit account, the following processes will be used during financial posting
for reconciliation:
If the Override accounts check box is selected, the debit account that is specified for the
reconciliation reason code is used as the account in the vendor invoice journal for the
reconciled amounts.
If the Override accounts check box is not selected, the ledger account that is specified
for the debit account type in the Charges code form is used for posting a vendor
account or customer account.
To enable automatic freight bill matching, freight bill types need to be set up.
1. Go to Transportation management > Setup > Freight reconciliation > Freight bill type.
2. The setup of the freight bill type included in the demo data with AX 2012 R3 has following parameters:
Freight bill type = TL
Engine type = Microsoft.Dynamics.Ax.Tms.Bll.GenericNormalizer
Engine assembly = Microsoft.Dynamics.Ax.Tms.dll
3. In the details section, enter the following field values.
Sequence
Description
Name
Match required
Billing group ID
BillingGroupId
Yes
External code
ExternalCode
No
39
Transportation Management System Implementation Guide
White paper
Mode
Shipping carrier
None
Truck
Carrier 1
TL
None
Truck
Carrier 2
TL
None
Rail
Carrier 3
TL
None
LTL
Carrier 4
TL
None
Ocean
Carrier 5
TL
None
Parcel
Carrier 6
TL
40
Transportation Management System Implementation Guide
White paper
Finally, if automatic matching is performed, the audit master needs to be set up.
Go to Transportation management > Setup > Freight reconciliation > Audit master.
The Audit master form is used to set up the tolerance level for automatic freight bill matching. When you reconcile
freight, you can match freight bills with invoices that have specified audit tolerance level. If the values that are used for
the matching process are in the specified tolerance level, the reconciliation is approved and processed for automatic
payment of the invoice. You can create different audit masters for different freight bill types or carrier types.
Freight reconciliation is now set up and ready to be used.
41
Transportation Management System Implementation Guide
White paper
3.3 Implementation
3.3.1 Implementation assumptions
It is assumed that the basic strategy for calculating the rates is not supposed to change. However, the carrier does not
guarantee that the actual charges, minimal weight, and rounding base will not change over time. Therefore, we decide
that the following parameters used to calculate the freight charge can change and should be parameterized:
Rate
Minimal base rate
Rounding base
42
Transportation Management System Implementation Guide
White paper
Interpretation
Dimension1
Rounding base
Dimension2
Rate
Rate
Name
Field type
Data type
Lookup type
Mandatory
Rounding base
Rate base
Real
None
Yes
Rate base
Real
None
Yes
Rate placeholder*
Rate base
Real
None
Yes
* We do not expect to break the last dimension in the rate base type by using a break master. The rate base will use a
one-dimensional break master that includes just one break, Rate.
namespace ImplementationGuideEngines
{
using System;
using System.Linq;
using System.Xml.Linq;
using Microsoft.Dynamics.Ax.Tms;
using Microsoft.Dynamics.Ax.Tms.Bll;
using Microsoft.Dynamics.Ax.Tms.Data;
using Microsoft.Dynamics.Ax.Tms.Utility;
/// <summary>
/// Weight rounding engine uses weight as a base of calculating rates.
/// </summary>
/// <remarks>
/// Weight rounding engine calculates freight charge according to following formula:
/// Freight charge = rate * max (ceiling (actual weight / rounding base), minimal base weight / rounding base)
/// Where:
/// rounding base - the rounding base used for charging rate, for example per 100 lbs
/// actual weight - the weight used for calculating the rate
/// minimal base weight - the minimal required weight for which rating is done.
43
Transportation Management System Implementation Guide
White paper
///
If the actual weight is lower than minimal base weight, then minimal base weight
/// rate - rate per rounding base
/// </remarks>
public class WeightRoundingEngine : BaseRateEngine
{
public override void Initialize(TMSRateEngine rateEngine, RatingDto ratingDto)
{
base.Initialize(rateEngine, ratingDto);
RateEngineParameters parameters =
new RateEngineParameters(TMSEngine.RateEngine, rateEngine.RateEngineCode);
string data = parameters.RateBaseAssignerAssemblyType;
if (!string.IsNullOrEmpty(data) &&
data.IndexOf("|", StringComparison.OrdinalIgnoreCase) != -1)
{
string[] assemblyandtype = data.Split("|".ToArray(), StringSplitOptions.RemoveEmptyEntries);
this.RateBaseAssigner = GenericFactory.Create<IRateBaseAssigner>(assemblyandtype[0],
assemblyandtype[1]);
}
else
{
this.RateBaseAssigner = new MileageRateBaseAssigner();
}
}
public override RatingDto Rate(
TransactionFacade,
XElement shipment,
string rateMasterCode)
{
XElement re = shipment.RetrieveOrCreateRatingEntity(RatingDto);
TMSRateBaseAssignment rateBaseAssignment =
RateBaseAssigner.RetrieveRateBaseAssignment(
transactionFacade,
rateMasterCode,
shipment,
RatingDto);
if (rateBaseAssignment == null)
{
re.AddError(RateErrors.RateBaseAssignment);
return null;
}
else
{
TMSRateBase rateBase = TMSRateBaseRepository.Retrieve(rateBaseAssignment);
re.Add(new XElement(ElementXmlConstants.RateBase, rateBase.RateBaseCode));
TMSRateBaseDetail rateBaseDetail =
TMSRateBaseDetailRepository.Retrieve(
rateBase,
44
Transportation Management System Implementation Guide
White paper
RatingDto.ScheduledShipDate).FirstOrDefault();
if (rateBaseDetail != null)
{
CreateFreightCharge(shipment, re, rateBase, rateBaseDetail);
return this.RatingDto;
}
else
{
re.AddError(RateErrors.RateBaseDetail);
return null;
}
}
}
private void CreateFreightCharge(
XElement shipment,
XElement re,
TMSRateBase rateBase,
TMSRateBaseDetail rateBaseDetail)
{
decimal roundingBase = rateBaseDetail.Dimension1.ToDecimal();
decimal minBaseWeight = rateBaseDetail.Dimension2.ToDecimal();
decimal rate = rateBaseDetail.Rate;
decimal actualWeight = shipment.GetDecimal(ElementXmlConstants.Weight);
decimal roundedUpWeight = System.Math.Ceiling(actualWeight / roundingBase);
roundedUpWeight = Math.Max((minBaseWeight / roundingBase), roundedUpWeight);
re.AddFreightCharge(
rateBase,
roundedUpWeight * rate,
roundedUpWeight.ToString(),
rate,
TmsRateType.Rate,
rateBase.RateBaseCode,
RatingDto.BillingGroupId,
RatingDto.ExternalCode,
rateBase.CurrencyCode);
}
}
}
45
Transportation Management System Implementation Guide
White paper
As mentioned earlier, the current requirements do not include advanced filtering at the rate base assignment level.
Because we did not build a dedicated rate base assigner, we can reuse one of the existing ones with a very simple
contract. MileageRateBaseAssigner, which is available out of the box in AX 2012 R3, satisfies our requirements.
WeightRoundingEngine has a defaulting mechanism in the Initialize method. If the rate base assigner is not specified in
the engine parameters in Microsoft Dynamics AX, MileageRateBaseAssigner is used.
46
Transportation Management System Implementation Guide
White paper
Notice that this record has the ImplGuideExample rate base assigned to it. The rate base is defined as shown in the
following screenshot.
47
Transportation Management System Implementation Guide
White paper
Notice that in the screenshot, a carrier fuel index is associated with the rating profile. The next section describes how to
define a fuel surcharge and other charges that are related to the Northwind Transport carrier.
Despite defining the carrier fuel index and assigning it to the rating profile, we still need to define the accessorial
assignments to the Northwind Transport carrier, as shown in the following screenshot.
48
Transportation Management System Implementation Guide
White paper
49
Transportation Management System Implementation Guide
White paper
3.5 Testing
To test the engine, open the Rate route workbench, and enter required input data. For the Northwind Transport carrier,
the following minimal data is needed:
Address from
Address to
Weight
After you run the Rate shop operation, a valid rate result from Northwind Transport should be displayed.
For a weight of 4321 lbs, we should receive a rate of $1578.
3.6 Conclusion
Some carriers use algorithms to calculate transportation charges that are not supported by any of the rate engines that
are available out of the box in AX 2012 R3. Some of these carriers provide online services that can be used to retrieve
rates. Others might provide a simple formula that can be used to calculate rates offline. In this part of the case study,
you learned how to model a specific carrier contract by using the new rating engine and charges functionality that are
available in the Transportation management system.
50
Transportation Management System Implementation Guide
White paper
4. Appendix
4.1 Manually create rate base types
To manually create rate base types, go to Transportation management > Setup > General > Rate base type.
LTL
1. In the upper part of the form, click New, and then enter the following field values:
Rate base type = LTL
Name = LTL
9. In the lower part of the form, in the Field type field, select Rate base.
10. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Class
Field type = Rate base
Data type = Real
Lookup type = LTL class
Mandatory = Yes
11. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Weight
Field type = Rate base
Data type = Real
Lookup type = None
Mandatory = Yes
51
Transportation Management System Implementation Guide
White paper
12. In the lower part of the form, in the Field type field, select Assignment.
13. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 1
Name = Pick-Up Postal Code
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
14. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Drop-Off State
Field type = Assignment
Data type = String
Lookup type = State
Mandatory = No
15. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 3
Name = Drop-Off Start Postal Code
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
16. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 4
Name = Drop-Off End Postal Code
52
Transportation Management System Implementation Guide
White paper
Mileage
1. In the upper part of the form, click New to create a new rate base type, and then enter the following field values:
Rate base type = Mileage
Name = Mileage
18. In the lower part of the form, in the Field type field, select Rate base.
19. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = AddOnCharge
Field type = Rate base
Data type = Real
Lookup type = None
Mandatory = No
53
Transportation Management System Implementation Guide
White paper
20. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Mileage
Field type = Rate base
Data type = Integer
Lookup type = None
Mandatory = Yes
21. In the lower part of the form, in the Field type field, select Assignment.
22. Make sure that the grid in the lower part of the form is empty.
54
Transportation Management System Implementation Guide
White paper
P2P
1. In the upper part of the form, click New, and then enter the following field values:
Rate base type = P2P
Name = P2P
23. In the lower part of the form, in the Field type field, select Rate base.
24. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Drop-off City
Field type = Rate base
Data type = String
Lookup type = None
Mandatory = No
25. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Drop-off State
Field type = Rate base
Data type = String
Lookup type = State
Mandatory = No
26. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 3
Name = Drop-off Postal Code From
Field type = Rate base
Data type = String
Lookup type = Postal code
55
Transportation Management System Implementation Guide
White paper
Mandatory = No
27. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 4
Name = Drop-off Postal Code To
Field type = Rate base
Data type = String
Lookup type = Postal Code
Mandatory = Yes
28. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 5
Name = Drop-off Country Region
Field type = Rate base
Data type = String
Lookup type = Country/region
Mandatory = Yes
29. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 6
Name = Rate Placeholder
Field type = Rate base
Data type = Real
Lookup type = None
Mandatory = Yes
30. In the lower part of the form, in the Field type field, select Assignment.
56
Transportation Management System Implementation Guide
White paper
31. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Pick-up City
Field type = Assignment
Data type = String
Lookup type = None
Mandatory = No
32. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Pick-up State
Field type = Assignment
Data type = String
Lookup type = State
Mandatory = No
33. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 3
Name = Pick-up Postal Code
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = No
34. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 4
Name = Pick-up Country
Field type = Assignment
Data type = String
Lookup type = Country/region
Mandatory = Yes
57
Transportation Management System Implementation Guide
White paper
PostalZoneWeight
1. In the upper part of the form, click New, and then enter the following field values:
Rate base type = PostalZoneWeight
Name = Postal Zone Weight
35. In the lower part of the form, in the Field type field, select Rate base.
36. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Zone
Field type = Rate base
Data type = Integer
Lookup type = None
Mandatory = Yes
37. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Weight
Field type = Rate base
Data type = Real
Lookup type = None
Mandatory = Yes
58
Transportation Management System Implementation Guide
White paper
38. In the lower part of the form, in the Field type field, select Assignment.
39. Make sure that the grid in the lower part of the form is empty.
59
Transportation Management System Implementation Guide
White paper
LTLFak
1. In the upper part of the form, click New, and then enter the following field values:
Rate base type = LTLFak
Name = LTLFak
2. In the lower part of the form, in the Field type field, select Rate base.
3. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Drop-off postal code from
Field type = Rate base
Data type = String
Lookup type = Postal Code
Mandatory = Yes
4. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Drop-off postal code to
Field type = Rate base
Data type = String
Lookup type = Postal Code
Mandatory = Yes
5. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 3
Name = Rating class
Field type = Rate base
Data type = String
Lookup type = None
60
Transportation Management System Implementation Guide
White paper
Mandatory = No
6. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 4
Name = Weight
Field type = Rate base
Data type = String
Lookup type = None
Mandatory = No
7. In the lower part of the form, in the Field type field, select Assignment.
8. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Pickup Postal Code
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
9. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Drop-Off State
Field type = Assignment
Data type = String
Lookup type = State
61
Transportation Management System Implementation Guide
White paper
Mandatory = No
Piece
1. In the upper part of the form, click New, and then enter the following field values:
Rate base type = Piece
Name = Piece
2. In the lower part of the form, in the Field type field, select Rate base.
3. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Pieces
Field type = Rate base
Data type = Real
Lookup type = None
Mandatory = Yes
62
Transportation Management System Implementation Guide
White paper
4. In the lower part of the form, in the Field type field, select Assignment.
5. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Pickup Postal Code
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
6. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Drop-off postal code from
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
7. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 3
Name = Drop-off postal code to
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
63
Transportation Management System Implementation Guide
White paper
8. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 4
Name = Drop-Off Country
Field type = Assignment
Data type = String
Lookup type = Country/region
Mandatory = Yes
VolumeSTCC
1. In the upper part of the form, click New, and then enter the following field values:
Rate base type = VolumeSTCC
Name = VolumeSTCC
2. In the lower part of the form, in the Field type field, select Rate base.
3. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = STCC
Field type = Rate base
Data type = String
Lookup type = STCC
Mandatory = Yes
4. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Volume
64
Transportation Management System Implementation Guide
White paper
5. In the lower part of the form, in the Field type field, select Assignment.
6. In the lower part of the form, click New, and then enter the following field values:
Sequence = 1
Name = Pickup Postal Code
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
7. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 2
Name = Drop-off postal code from
Field type = Assignment
Data type = String
Lookup type = Postal Code
Mandatory = Yes
8. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 3
Name = Drop-off postal code to
65
Transportation Management System Implementation Guide
White paper
66
Transportation Management System Implementation Guide
White paper
Send feedback.
Microsoft Dynamics is a line of integrated, adaptable business management
solutions that enables you and your people to make business decisions with
greater confidence. Microsoft Dynamics works like and with familiar
Microsoft software, automating and streamlining financial, customer
relationship, and supply chain processes in a way that helps you drive
business success.
United States and Canada toll free: (888) 477-7989
Worldwide: (1) (701) 281-6500
www.microsoft.com/dynamics