You are on page 1of 67

Microsoft Dynamics AX 2012 R3

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

Transportation Management System Implementation Guide

Audience
Overview of features

5
5

1. Setup requirements

1.1

Understanding the Transportation management parameters

2. Case study 1 Transportation management setup


2.1

Overview of case study


Inbound transportation
Outbound transportation
Carrier contracts
2.2
Carrier setup
2.2.1 Rate base type
2.2.2
Modes
2.2.3
Case study continued
2.2.4
Transportation methods
2.2.5
Case study continued
2.2.6
Break masters
2.2.7
Case study continued
2.2.8
Shipping carriers
2.2.9
Case study continued
2.2.10
Rate master
2.2.11
Case study continued
2.2.12
Rating profiles
2.2.13
Case study continued
2.3
Charges setup
2.3.1 Accessorial charges
2.3.2
Case study continued
2.3.3
Miscellaneous charges
2.3.4
Override charges
2.4
Discounts
2.5
Routing setup
2.5.1 Route plan
2.5.2
Route guide
2.5.3
Routing constraints
2.6
Load building workbench
2.7
Appointment scheduling
2.7.1 Business model
2.7.2
Setup
2.7.3 Driver check-in and check-out using a mobile device
2.8
Freight reconciliation

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

3. Case study 2 - Engines

42

3.1 Business case


3.2 Rate engine requirements
3.3 Implementation
3.3.1
Implementation assumptions
3.3.2 Rate engine design
3.3.3 Engine implementation
3.4 Engine enablement and carrier setup

42
42
42
42
43
43
45

2.1.1
2.1.2
2.1.3

2
Transportation Management System Implementation Guide
White paper

3.4.1 Create a rate base type


3.4.2 Create a rate engine in Microsoft Dynamics AX
3.4.3 Create a one-dimensional break master
3.4.4 Create a rate master
3.4.5 Create a carrier
3.4.6 Assign charges
3.5 Testing
3.6 Conclusion

45
46
46
46
47
48
50
50

4. Appendix

51

4.1 Manually create rate base types

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:

Transportation management online Help on TechNet

Implementing and deploying transportation management engines

Transportation management mileage engine based on Bing maps

Third-party transportation management engines (UPS, FedEx, Progistics, PCMiler)

Using transportation management without the new warehouse management module

4
Transportation Management System Implementation Guide
White paper

Transportation Management System Implementation Guide


The purpose of this document is to provide functional and technical guidance to users who are looking to implement or
use the Transportation Management System (TMS) provided as part of the Microsoft Dynamics AX 2012 R3 solution.
This document walks you through a case study where TMS is set up from scratch, with detailed information about the
various fields found in the module. This document is a supplement to the online Help for Transportation Management
thats available on TechNet.

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

Understanding the Transportation management parameters

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

The number of minutes before an appointment alert.

Write vendor invoice


journal

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.

Freight bill transaction text

Vendor invoice

The text that appears on the general ledger journal line that is
generated for a freight bill.

Vendor journal name

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.

Default note type

Vendor invoice

The note type for invoice line reconciliation.

Automatically match and


pay the freight invoice

Vendor invoice

When this check box is selected, the freight invoice is automatically


matched with and paid to the vendor. If the check box is cleared, you
must manually complete the matching and payment.

Match interval

Vendor invoice

The number of seconds between searches for matching freight


invoices and invoice journal lines.

Enable invoice workflow

Vendor invoice

Select this check box to process the vendor invoice through a


workflow approval process when the invoice is submitted for
approval. You can create workflows for vendor invoicing in Accounts
payable, in the Accounts payable workflows form, under Setup. The
invoice process uses a workflow of the Vendor invoice workflow type.

Workflow user

Vendor invoice

The user who can process the vendor invoice workflow.

Port hub type

Hub type

The type of hub master that is associated with the accessorial


assignment.

Plan by shipment

Shipment

You can plan by load or by shipment. Planning by shipment is more


detailed than planning by load.
To plan by shipment, select this check box.
To plan by load, clear this check box.

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.

Automatically create sales


order entry

Loads

When this check box is selected, a load is automatically created when


you create a sales order line.

Automatically create a
purchase order entry

Loads

When this check box is selected, a load is automatically created when


you create a purchase order line.

Automatically create at
transfer order entry

Loads

When this check box is selected, a load is automatically created when


you create a transfer order entry.

Override outbound
shipped confirmation date

Loads

When this check box is selected, the outbound ship confirm date on
the load will be overridden.

Create customer charges


for direct delivery

Direct delivery

When this check box is selected, customer charges are created when
you rate the load.

Initialize base engine data

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).

2. Case study 1 Transportation management setup


The case study in this document is divided into two parts. The first part demonstrates how to set up TMS parameters
with carriers, services, and accessorial charges in order to enable rating and routing of shipments. The second part of
the case study discusses a technical approach to creating a new rate engine that conforms to the needs of a specific
business case.

8
Transportation Management System Implementation Guide
White paper

2.1

Overview of case study

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.

2.1.1 Inbound transportation


On the inbound side, the scenario is fairly simple: they need to organize the transportation from the vendors site to
their own warehouse. They prefer to organize the process themselves, because they have a good contract with their
carriers that provides a lot of savings on a yearly basis.
When the transportation charges are then transferred to the purchase order as miscellaneous charges, they will be
included as part of the landed costs.
The nature of their business is also such that they have a fairly limited number of vendors (34) from which they get
their supplies.

2.1.2 Outbound transportation


The picture on the outbound side is somewhat more complicated than on the inbound side.
They have a large number of customers across the US, to whom they ship in different ways. They have transportation
contracts with approximately 20 carriers. Some of these can be categorized in the same type, but for the most part they
have some differences.

2.1.3 Carrier contracts


The carrier contracts used in this case study can be summarized in the following categories.
Carrier

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

Per rail car


Per container
Unit

We can divide the preceding tables into several parts:


1. Setup to be done with the help of the engines (Mileage, Weight, Volume, Zones, Commodity code, and LTL
classification columns). This part of the case study will use the existing engines shipped out-of-the-box with
Microsoft Dynamics AX 2012 R3.
9
Transportation Management System Implementation Guide
White paper

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.

2.2.1 Rate base type


Each rate base type defines the structure of its rate base and its rate base assignment. The rate base type can be
applied to any rate master. It defines lookup criteria that are used to determine rates of a shipping carrier.
There are several rate base types included in Microsoft Dynamics AX 2012 R3 that will be created after initializing base
engine data in the transportation management parameters. The manual setup of these rate base types can be seen in
the appendix. Its possible to create different user-defined rate base types. To view the rate base types, go to
Transportation management > Setup > General > Rate base type.
The following table describes the fields available to configure the additional lookup criteria for rate base or assignment
in the Rate base type form.
Field

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

Specify the lookup criteria as rate based or assignment based.

Data type

Select a data type for the break unit.

Lookup type

Select the criteria for the break unit.

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.

2.2.3 Case study continued


1. Go to Transportation management > Setup > General > Mode.
2. Click New, and then enter the following field values:
Mode = Truck
Name = Truck
3. Repeat step 2 for Rail, LTL, Ocean, Air, Parcel, and Ground.

10
Transportation Management System Implementation Guide
White paper

2.2.4 Transportation methods


Transportation methods represent the method of transport, such as ground, air and ocean.

2.2.5 Case study continued


1. Go to Transportation management > Setup > General > Transportation method.
2. Click New, and then enter the following field values:
Mode = Ground
Name = Ground
3. Repeat step 2 for Air and Ocean.

11
Transportation Management System Implementation Guide
White paper

2.2.6 Break masters


Break masters are used to define the pricing structure and its breakpoints. The pricing structure uses tiered pricing that
is based on physical dimensions. The brake masters are then used by rate bases to define rates for each of the
breakpoints.

2.2.7 Case study continued


The break masters in this case study will show examples of different common breakpoints with several dimensions, as
well as one-dimensional breakpoints.
To begin, go to Transportation management > Setup > Rating > Break master.

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

2.2.8 Shipping carriers


When the modes, transportation methods and break masters are set up, it is possible to create the shipping carriers.
To view shipping carriers, go to Transportation management > Setup > General > Shipping carrier.
The fields in the Overview FastTab are described in the following table.
Field

Description

Shipping carrier

Enter a unique identifier (ID) for the shipping carrier.

Use carrier

Select this check box to use the specified shipping carrier for shipment.

Mode

Select the ID for the shipment mode.

Vendor

Select the vendor account to which you want to assign the shipping carrier.

SCAC

Enter an ID for the Standard Carrier Alpha Code (SCAC).

Activate carrier rating

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.

Pro number sequence

Optional: Select a number sequence that is associated with a generic engine.

The fields in the Service FastTab are described in the following table.
Field

Description

Carrier service

Enter a unique ID for the carrier service.

Transportation method

Select the ID for the transportation method.

External code

Enter an external code for the shipping carrier.

Billing group ID

Select the ID for the billing group.

Load template ID

Optional: Select the ID for the load template.

The fields in the Rating profile FastTab are described in the following table.
Field

Description

Rating profile

Enter a unique ID for the rating profile.

Shipping carrier

Select the shipping carrier to be associated with the rating profile.

Rating engine

Select the rating engine to use for the rating profile.

Rate master

Select the rate master to use for the rating profile.

Transit time engine

If applicable, select the transit time engine to be used for the rating profile.

Carrier fuel index

If applicable, select the carrier fuel index to be used for the rating profile.

2.2.9 Case study continued


For the first part of the setup well define the name, mode, and service of the shipping carriers. After that, the rating of
each shipping carrier will be set up in the Rate master and Rate profile form. Set up the shipping carriers as follows.

2.2.9.1

Carrier 1

1. Click New, and then enter the following field values:


Shipping carrier = Carrier 1
16
Transportation Management System Implementation Guide
White paper

Use carrier = Yes


Mode = Truck
Name = Carrier 1
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 = Ground

2.2.9.2

Carrier 2

1. Click New, and then enter the following field values:


Shipping carrier = Carrier 2
Use carrier = Yes
Mode = Truck
Name = Carrier 2
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 = Ground

2.2.9.3

Carrier 3

1. Click New, and then enter the following field values:


Shipping carrier = Carrier 3
Use carrier = Yes
Mode = Rail
Name = Carrier 3
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 = Ground

2.2.9.4

Carrier 4

1. Click New, and then enter the following field values:


Shipping carrier = Carrier 4
Use carrier = Yes
Mode = LTL
Name = Carrier 4
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 = Ground

2.2.9.5

Carrier 5

1. Click New, and then enter the following field values:


Shipping carrier = Carrier 5
Use carrier = Yes
Mode = Ocean

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

1. Click New, and then enter the following field values:


Shipping carrier = Carrier 6
Use carrier = Yes
Mode = Parcel
Name = Carrier 6
Activate carrier rating = Yes
2. Expand the Service group.
3. Click New, and then enter the following field values:
Service = STD
Name = STD
Transportation method = Ground

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.

2.2.10 Rate master


The rate master defines the rate base assignment and rate base, and is then associated with a shipping carrier through
rating profiles. It is important to note that the rate base type of the rate master must correspond to the rate base type
of the shipping carriers rating engine.
The rate base determines the rate of the carrier, and can be used to set up a tariff structure as it structures the rates in
the breakpoints defined in the Break master form. You can create multiple rate bases for a rate master. The rate bases
are unique to the rate master.
In principle, the rate masters are used to determine the available rates for the shipping carrier and determine whether
the rates will use the shipping carrier for an assignment when rate shopping in the Rate route workbench.
To create rate masters, go to Transportation management > Setup > Rating > Rate master.

18
Transportation Management System Implementation Guide
White paper

2.2.11 Case study continued


The next step is to create rate masters for each shipping carrier. Set up the rate masters as follows.

2.2.11.1

Carrier 1 Rate master

1. Click New, and then enter the following field values:


Rate master = Carrier 1 RM
Name = Carrier 1 RM
Rate base type = Mileage
Rate master = Carrier 1 RM
2. Expand the Rate base assignment group.
3. Click New.
4. Right-click a rate base, and then click View details.
5. In the upper part of the form, click New, and then enter the following field values:
Rate base = Carrier 1 RB
Name = Carrier 1 RB
Break master = Mileage
Currency = USD
6. In the lower part of the form, click New, and then enter the following field values:
Add on charge = 0
< 50 miles = 1
< 100 miles = 0.97
< 200 miles = 0.96
< 300 miles = 0.95
< 500 miles = 0.94
< 900 miles = 0.93
< 3000 miles = 0.9

7. Close the Rate base form.


8. On the rate base assignment line, enter the following field values:
Name = Carrier 1 RBA
Rate base = Carrier 1 RB
Service = STD
The purpose of the rate setup for this carrier is that the mileage rate should get lower for longer trips.

2.2.11.2

Carrier 2 Rate master

1. Click New, and then enter the following field values:


Rate master = Carrier 2 RM
19
Transportation Management System Implementation Guide
White paper

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

7. Close the Rate base form.


8. On the rate base assignment line, enter the following field values:
Name = Carrier 2 RBA
Rate base = Carrier 2 RB
Service = STD

2.2.11.3

Carrier 3 Rate master

1. Click New, and then enter the following field values:


Rate master = Carrier 3 RM
Name = Carrier 3 RM
Rate base type = VolumeSTCC
2. Expand the Rate base assignment group.
3. Click New.
4. Right-click a rate base, and then click View details.
5. In the upper part of the form, click New, and then enter the following field values:
Rate base = Carrier 3 RB
Name = Carrier 3 RB
Break master = Volume
Currency = USD

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

8. Close the Rate base form.


9. On the rate base assignment line, enter the following field values:
Name = Carrier 3 RBA4
Rate base = Carrier 3 RB
Service = STD
Pickup Postal Code = 46032
Destination start postal code = 00001
Destination end postal code = 99950
Destination country = USA
The purpose of the rate for this carrier is to have different rates apply, depending on the type of goods shipped.

2.2.11.4

Carrier 4 Rate master

1. Click New, and then enter the following field values:


Rate master = Carrier 4 RM
Name = Carrier 4 RM
Rate base type = LTL
2. Expand the Rate base assignment group.
3. Click New.
21
Transportation Management System Implementation Guide
White paper

4. Right-click a rate base, and then click View details.


5. In the upper part of the form, click New, and then enter the following field values:
Rate base = Carrier 4 RB
Name = Carrier 4 RB
Break master = Czarlite
Currency = USD
6. In the lower part of the form, click New, and then enter the following field values:
Class = 100
< 500 miles = 500
< 1000 miles = 450
< 2000 miles = 430
< 10000 miles = 400
< 20000 miles = 300
< 30000 miles = 250
< 40000 miles = 200

7. Close the Rate base form.


8. On the rate base assignment line, enter the following field values:
Name = Carrier 4 RBA
Rate base = Carrier 4 RB
Service = STD
Origin postal code = 46032
Destination start postal code = 00001
Destination end postal code = 99950
Destination country = USA

2.2.11.5

Carrier 5 Rate master

1. Click New, and then enter the following field values:


Rate master = Carrier 5 RM
Name = Carrier 5 RM
Rate base type = P2P
2. Expand the Rate base assignment group.
3. Click New.
4. Right-click a rate base, and then click View details.

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

8. Close the Rate base form.


9. On the rate base assignment line, enter the following field values:
Name = Carrier 5 RBA
Rate base = Carrier 5 RB
Service = STD
Pick-up country = USA
The purpose of the rate for this carriers is to have different rates apply, depending on the destinations postal code.

2.2.11.6

Carrier 6 Rate master

1. Click New, and then enter the following field values:


Rate master = Carrier 6 RM
Name = Carrier 6 RM
Rate base type = PostalZoneWeight2
2. Expand the Rate base assignment group.
3. Click New.
4. Right-click a rate base, and then click View details.
5. In the upper part of the form, click New, and then enter the following field values:
Rate base = Carrier 6 RB
Name = Carrier 6 RB
Break master = Piece
Currency = USD

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

7. Close the Rate base form.


8. On the rate base assignment line, enter the following field values:
Name = Carrier 6 RBA
Rate base = Carrier 6 RB
Service = STD

24
Transportation Management System Implementation Guide
White paper

2.2.12 Rating profiles


The next step is to associate the shipping carrier with a rate master and a rate engine. This is done by using rating
profiles. A rating profile is unique for a shipping carrier. In this case study, the rating profile will be set up in the Rating
profile form, which has an overview of all existing rating profiles. You can also set up a rating profile directly from the
Shipping carrier form. The information that you set up for the rating profile is the same, regardless of how you access
the setup.
To create rating profiles, go to Transportation management > Setup > Rating > Rating profile.

2.2.13 Case study continued


Set up the rating profiles as follows.
1. Click New, and then enter the following field values:
Rating profile = Carrier 1 RP
Name = Carrier 1 RP
Shipping carrier = Carrier 1
Rate engine = Mileage
Rate master = Carrier 1 RM
Transit time engine = PointToPoint
2. Click New, and then enter the following field values:
Rating profile = Carrier 2 RP
Name = Carrier 2 RP
Shipping carrier = Carrier 2
Rate engine = PostalZoneWeight
Rate master = Carrier 2 RM
Transit time engine = PointToPoint
3. Click New, and then enter the following field values:
Rating profile = Carrier 3 RP
Name = Carrier 3 RP
Shipping carrier = Carrier 3
Rate engine = VolumeSTCC
Rate master = Carrier 3 RM
Transit time engine = PointToPoint
4. Click New, and then enter the following field values:
Rating profile = Carrier 4 RP
Name = Carrier 4 RP
Shipping carrier = Carrier 4
Rate engine = LTL
Rate master = Carrier 4 RM
Transit time engine = PointToPoint
5. Click New, and then enter the following field values:
Rating profile = Carrier 5 RP
Name = Carrier 5 RP
Shipping carrier = Carrier 5
Rate engine = P2PContract
Rate master = Carrier 5 RM
Transit time engine = PointToPoint
6. Click New, and then enter the following field values:
Rating profile = Carrier 6 RP
Name = Carrier 6 RP
Shipping carrier = Carrier 6
Rate engine = PostalZoneWeight
Rate master = Carrier 6 RM
Transit time engine = PointToPoint

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.

2.3.1 Accessorial charges


You can associate a shipping carrier with one or more accessorial charges for surcharges, such as fuel surcharges. When
you rate a shipment, you can calculate accessorial charges and assign those charges to freight transportation services.
An accessorial assignment associates a carrier with a surcharge configuration, which is then used when you rate a
shipment.
Before you can set up an accessorial assignment, you need to set up accessorial master and accessorial charges for
carriers and/or hubs. The accessorial master is used to categorize the carrier accessorial and hub accessorial charges.
To create accessorial assignments, go to Transportation management > Setup > Rating > Accessorial assignments. You
can also access the Accessorial assignments form from the Carrier accessorial charges form and the Shipping carrier
form.

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

The flat rate without any additional calculations.


If you select this field, the following field becomes available:
Accessorial fee Optional: Enter an assessorial fee to apply when the freight is
rated.

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

The accessorial fee is a percentage of the base shipping rate.


Some of the fields that become available when you select this option correspond to the
fields listed for the Per unit field.
In addition to the fields listed for Per unit, the following field becomes available:
Percentage - Enter the percentage to use for calculating accessorial charges.

Fuel surcharge

The surcharge rate or percentage based on the carriers fuel index.


Some of the fields that become available when you select this option correspond to the
fields listed for the Per unit field.
In addition to the fields listed for Per unit, the following fields become available:
Region - Optional: Change the region that is derived from the shipping carrier. This
is the region where the fuel index is applied.
Offset - Optional: Enter the number of offset days for which the fuel index will apply.

2.3.2 Case study continued


In this case study, we will set up accessorial charges for Carrier 5 to have a flat rate. First, well create accessorial masters
for the carrier.
1. Go to Transportation management > Setup > Rating > Accessorial master.
2. Click New and then enter the following field values:
Accessorial master = Carrier5Accessorial
Accessorial type = Shipping carrier
Name = Carrier 5 Accessorial

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

Now its possible to set up an accessorial assignment.


Go to Transportation management > Setup > Rating > Accessorial assignments.
Set up the accessorial charges as follows.

2.3.2.1

Carrier 5 Accessorial charges

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.

2.3.3 Miscellaneous charges


The landed transportation costs will be transferred to the sale, purchase, or transfer orders as miscellaneous charges
and will be included as part of the landed costs. This is dependent on the delivery terms set up.
To set up miscellaneous charges, go to Transportation management > Setup > General > Miscellaneous charges.

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

Optional: Specify a site to filter the miscellaneous charges from.

Warehouse

Optional: Specify a warehouse to filter the miscellaneous charges from.

Carrier service

Optional: Specify a carrier service to filter the miscellaneous charges from.

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

Optional: If selected, the charges will be ignored.

Effective start date and


time

Select the effective start date and time of the record.

Effective end date and


time

Optional: Select the end date and time of the record.

2.3.4 Override charges


Use override charges to assign a fixed transportation cost to customers or vendors to override the actual transportation
rate. This could be set up for specific customers, carriers, routes, or carrier services. For example, this can be used if you
have a specific contract with a customer to pay a fixed rate on all deliveries.
To set up override charges, go to Transportation management > Setup > General > Override charges.

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.

2.5.1 Route plan


Route plans contain route segments that provide information about the shipping carrier, carrier service, carrier group,
origin and destination hubs, modes of transport, and other details pertaining to freight delivery.
To set up route plans, go to Transportation management > Setup > Routing > Route plan.

2.5.2 Route guide


Use the Routing guide form to set up a routing guide and select plans for it.
To set up route guides, go to Transportation management > Setup > Routing > Routing guide.

31
Transportation Management System Implementation Guide
White paper

2.5.3 Routing constraints


Routing constrains can be set up for items, shipments, or shipping carriers. Constraints are set up to either warn or
restrict when rate shopping in the Rate route workbench form.
When set up to warn, a warning message indicates that the route should not be assigned to the freight.
When set up to restrict, the constraint restricts the transportation coordinator from assigning a route to the freight.
For example, you can set a constraint on hazardous chemicals so that the item is not transported using a particular
shipping carrier.
To set up an item constraint, follow these steps:
1. Go to Transportation management > Setup > Routing > Constraints.
2. In the Item area, click New to create an item constraint.
3. Enter an identifier (ID) and a name for the item constraint.
4. Optional: Select the site and warehouse in which this item constraint should be applied.
5. In the Item number field, select the item for which you want to set a constraint. If you want the constraint to apply to
several items, use the code fields.
6. In the Code fields, select one or more filter codes to set the constraint for items that are assigned to the selected
filter codes. For example, if you select the filter code for inflammable items, then the constraint is applied to all
inflammable items.

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.

To set up a shipment constraint, follow these steps:


1. Go to Transportation management > Setup > Routing > Constraints.
2. In the left pane, click Shipment.
3. In the Shipment area, click New to create a shipment constraint
4. Enter an identifier (ID) and a name for the shipment constraint.
5. Optional: Select the site and warehouse in which this item constraint should be applied.
6. Select a customer or vendor account for the shipment for which you want to set a constraint.
7. Enter the maximum and minimum weight of the shipment.
8. In the rightmost pane, on the Condition FastTab, specify the conditions for the shipment constraint.
9. 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 shipment constraints are met in the
Rate route workbench form.

33
Transportation Management System Implementation Guide
White paper

2.6

Load building workbench

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.

Load building strategy

Select the strategy that contains the criteria to apply when generating the proposed loads.

Supply or demand type

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.

Origin and Destination

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

Optional: You can apply specific filter codes to apply as a criteria.

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.1 Business model


Warehouse appointments represent events that occur at a dock for receiving a purchase order, shipping a sales order, or
processing an inbound or outbound load at a specific date and time. Appointments are created to reduce the manual
work for warehouse personnel. This ensures that there is availability of docks for the loading and unloading of goods,
and avoids a situation in which multiple carriers arrive at a location at the same time.
The warehouse is divided into different inbound and outbound sides.
On the inbound side, there is only one dock, but several appointments can be booked simultaneously. This is because
of the simplicity of the inbound picture, because the deliveries take no longer than 30 minutes, and because sometimes
the truck drivers can wait a few minutes for their turn.
On the outbound side, the pick-up of goods is more complex, so we need to mark all the docks separately with their
own appointment times.
The following is the setup suggestion for this model.

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

Enter a unique ID for the appointment type

Site

Select the site for the appointment type.

Warehouse

Select the warehouse for the appointment type.

Duration

Enter the appointment duration for a specified warehouse location, in minutes.

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

Select Both, Inbound, or Outbound to indicate the direction of item movement.

Location profile ID

If applicable, select the location in the warehouse of the appointment.

2. Enter the following field values.

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.7.3 Driver check-in and check-out using a mobile device


After youve created and confirmed an appointment in Microsoft Dynamics AX, you can register the check-in and
check-out time using a mobile device. During a driver check-in, you can verify the weight and the shipping destination
for an appointment, and change the shipping carrier, if it is required.
The prerequisites for registering driver check-in and check-out include:
Creating a menu item for driver check-in and check-out in the Mobile device menu items form. For more
information, see Configure mobile devices for warehouse work.
Setting up a menu for the mobile device. For more information, see Set up mobile device menus to display work
or activities.
Creating an appointment for a load at a warehouse location. For more information, see Plan appointments for a
load.
After the prerequisites are set up, you can register the driver check-in time for an appointment by selecting the option
for driver check-in on the mobile device menu. You can then register and confirm the load ID, shipment ID, or
appointment ID that is related to the check-in that you want to process.

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

Pay the freight


vendor

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

Enter a name for the reconciliation reason.

Description

Enter a description for the reconciliation reason.

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

Pay the freight vendor

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

Next, we need to set up the freight bill type assignments:


4. Go to Transportation management > Setup > Freight reconciliation > Freight bill type assignments.
5. Enter the following field values.
Direction

Mode

Shipping carrier

Freight bill type

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

Next, we need to set up the billing groups:


Go to Transportation management > Setup > Freight reconciliation > Billing group.

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. Case study 2 - Engines


3.1 Business case
A carrier company, Northwind Transport, has given you a very interesting long-term offer for providing transportation
service. You accepted the offer and decided to model the carrier contract in the Transportation management module in
Microsoft Dynamics AX, so that you can rate, record, and reconcile the transportation costs associated with your supply
chain.
According to the contract, following strategy is used to calculate the transportation rate:
The freight charge is calculated based on weight. A fixed rate of $30 is paid per 100 lbs (rounding base). The
measured weight used to calculate the freight cost is always rounded up to the nearest 100 lbs. Moreover, there is a
minimal base weight of 1000 lbs that is used to calculate the freight charge. If the measured weight is under the
minimum, the minimal weight is taken as the base for calculating the freight charge.
Moreover, additional charges are added:
Scale charge, which is a fixed, flat value of $20
Toll charge, which is a fixed, flat value of $40
Fuel surcharge, which is calculated as a specific percentage of the actual freight cost for instance, 15 percent of
the total freight cost
The following examples demonstrate how the charges would be assigned based on this carrier charging strategy:
Measured weight is 4321 lbs:
Freight charge = 44 * $30 = $1320 (the weight of 4321 is rounded up to 4400)
Scale charge = $20
Toll charge = $40
Fuel surcharge = 0.15 * $1320 = $198
Total rate = $1320 + $20 + $40 + $198 = $1578
Measured weight is 720 lbs:
Freight charge = 10 * $30 = $300 (the minimal base weight of 1000 lbs is used)
Scale charge = $20
Toll charge = $40
Fuel surcharge = 0.15 * $300 = $45
Total rate = $405

3.2 Rate engine requirements


To calculate the total rate, the TMS system needs to take into consideration accessorial charges (scale charge, toll
charge, and fuel surcharge) and the freight charge calculation. The accessorial charges can be set up directly on the
carrier and should not be taken into consideration by the rating engine. However, the freight charge needs to be
calculated according to following formula:
Freight charge = rate * max (ceiling (actual weight / rounding base), minimal base weight / rounding base)
Microsoft Dynamics AX 2012 R3 does not include a rate engine that uses this formula. A new, custom rate engine needs
to be implemented to satisfy the requirements.

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

3.3.2 Rate engine design


The engine will reuse the rate base to retrieve data from Microsoft Dynamics AX. This is a very flexible and inexpensive
way of recording and providing data to a rate engine in TMS.
In order to ensure that the Microsoft Dynamics AX user and the engine have the same run-time interpretation of rate
base data, a fixed data contract, expressed through the rate base type, needs to be recorded. The following rate base
data contract will be used.
TMSRateBaseDetail field

Interpretation

Dimension1

Rounding base

Dimension2

Minimal base weight

Rate

Rate

This contract can be expressed by the following rate base type.


Sequence

Name

Field type

Data type

Lookup type

Mandatory

Rounding base

Rate base

Real

None

Yes

Minimum base weight

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.

3.3.3 Engine implementation


In Microsoft Visual Studio, create a C# class library called ImplementationGuideEngines that will compile into
ImplementationGuideEngines.dll, which is deployed on the Application Object Server (AOS) tier.
The following code example contains the source code of the rate engine that calculates freight charges for Northwind
Transport.

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);
}
}
}

3.4 Engine enablement and carrier setup


3.4.1 Create a rate base type
Current requirements do not include filtering at the rate base assignment level. Therefore only rate base metadata is
recorded for the rate base type.
Create a new rate base type called WeightRounding, as shown in the following screenshot.

45
Transportation Management System Implementation Guide
White paper

3.4.2 Create a rate engine in Microsoft Dynamics AX


Create a new rate engine that is associated with WeightRoundingEngine and the WeightRounding rate base type, as
shown in the following screenshot.

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.

3.4.3 Create a one-dimensional break master


The last dimension of a rate base is not expected to be broken down into intervals. To ensure that only one record per
merged line of a rate base is created, we need to build a one-dimensional break master, called Empty, as shown in the
following screenshot.

3.4.4 Create a rate master


We can now record data that represents the current contract with Northwind Transport. To record data, we need to
create a rate master that is associated with the WeightRounding rate base type, as shown in the following screenshot.

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.

3.4.5 Create a carrier


We are now ready to create a carrier that uses the WeightRounding rate engine and the WeightRounding rate master.
Create a shipping carrier 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.

3.4.6 Assign charges


3.4.6.1 Fuel surcharge
The fuel surcharge is calculated as 15 percent of the total rate. The percentage rate is modeled by the carrier fuel index.
The rating profile described in the previous section has a carrier fuel index called RatePercentage defined, as shown in
the following screenshot.

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.

3.4.6.2 Scale charge


The scale charge of $20 is modeled as a simple flat accessorial charge that is defined, as shown in the following
screenshot.

48
Transportation Management System Implementation Guide
White paper

3.4.6.3 Toll charge


The toll charge of $40 is also modeled as a flat accessorial charge assigned to the carrier, as shown in the following
screenshot.

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.

For a weight of 720 lbs, we should receive a rate of $405.

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

Field type = Assignment


Data type = String
Lookup type = Postal Code
Mandatory = Yes
17. Click New in the lower part of the form again, and then enter the following field values:
Sequence = 5
Name = Drop-Off Country
Field type = Assignment
Data type = String
Lookup type = Country/region
Mandatory = Yes

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

Field type = Rate base


Data type = Real
Lookup type = None
Mandatory = Yes

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

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 = 4
Name = Drop-Off Country
Field type = Assignment
Data type = String
Lookup type = Country/region
Mandatory = Yes

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

The information contained in this document


represents the current view of Microsoft
Corporation on the issues discussed as of the
date of publication. Because Microsoft must
respond to changing market conditions, this
document should not be interpreted to be a
commitment on the part of Microsoft, and
Microsoft cannot guarantee the accuracy of
any information presented after the date of
publication.
This white paper is for informational
purposes only. MICROSOFT MAKES NO
WARRANTIES, EXPRESS, IMPLIED, OR
STATUTORY, AS TO THE INFORMATION IN
THIS DOCUMENT.
Complying with all applicable copyright laws
is the responsibility of the user. Without
limiting the rights under copyright, no part of
this document may be reproduced, stored in,
or introduced into a retrieval system, or
transmitted in any form or by any means
(electronic, mechanical, photocopying,
recording, or otherwise), or for any purpose,
without the express written permission of
Microsoft Corporation. Microsoft may have
patents, patent applications, trademarks,
copyrights, or other intellectual property
rights covering subject matter in this
document. Except as expressly provided in
any written license agreement from
Microsoft, the furnishing of this document
does not give you any license to these
patents, trademarks, copyrights, or other
intellectual property.
2014 Microsoft. All rights reserved.
Microsoft, Microsoft Dynamics, and the
Microsoft Dynamics logo are trademarks of
the Microsoft group of companies.

Transportation Management System Implementation Guide


White paper

You might also like