Transportation management freight invoices example in AX 2012 R3

This post is the last of a series. I started using automatic miscellaneous charges to estimate the landed cost for purchased items, here. Then I went one step further and used the Dynamics AX 2012 R3 Transportation management module to assign freight charges on a vendor-by-vendor basis here. Finally I posted an actual freight invoice against the inbound load here. But if you read that last post, you’ll realise that it was a very simplistic example – one purchase order, one load, one charge and one invoice.

I’m not going to repeat all of the content in the previous blogs, but I’m going to try to make this post a more realistic example. Firstly, the route assigned to the inbound load has three separate charges from three vendors (Ocean freight, Port charges, and Local freight):


And this has generated miscellaneous charge codes which have been added to my purchase order lines:


I could use that zero charge port line for an unexpected charge like demurrage.

When I received the purchase order I went to the Load planning workbench from the purchase order line and confirmed my inbound load:


Then I went to Related information > Transportation > Freight bill details



The system shows me the Freight bill details from my selected load:


Incidentally I can see these un-matched Freight bill details on a ‘Periodic’ form (which is actually an Inquiry), Transportation management > Periodic > Unmatched freight bills:


Back on the Freight bill details form, I could click on ‘Generate freight bill in…’ to generate a Freight bill invoice, but a more realistic scenario is that one of my vendors is going to send in an invoice, and it’s going to relate to more than one load, and it’s going to be for slightly more (or less) than my estimate. So let’s head over to Transportation management > Inquires > Freight invoice details and create the vendor’s invoice:


All I need on the header is the Shipping carrier / Vendor account; their invoice number and date. Then I add their invoice lines


And click on ‘Match freight bills and …’:


Now I’m selecting a vendor invoice line, and a freight bill line and ‘Match’, and repeat on the second line. I’ve got one line over and one line under.

The ‘under’ line shows up as an Unmatched freight bill line, I need to ‘Discard’ the un-matched Amount remaining:


When I click ‘Discard’ the system displays the Freight bill reconciliation form:


The Reconciliation reason code will tell the system which accounts to Debit/Credit (Transportation management > Setup > Freight reconciliation > Reconciliation reasons):


When you click OK on the Freight bill reconciliation form the Freight bill line disappears from the Unmatched freight bills list grid.

The ‘over’ line is reconciled when you click on ‘Submit for approval’:


Now we get a Reconcile invoice form (with the same Reconciliation reason codes). In this case you’ll probably choose a code which has ‘Pay the vendor’ ticked, and then you click OK.


As before, because I have no workflow setup, although the message says ‘The invoice has been submitted successfully’ – the system’s actually created two Accounts payable Invoice journals. First there’s the amount I ‘discarded’ from the Freight bill line:


And then there’s the Invoice journal for the Vendor Invoice I entered and matched to the Freight bill lines:


It may seem a bit un-wieldy at first glance but there’s a lot of useful functionality here just waiting to be deployed.

Inventory trace in Dynamics AX 2012 R2

I’m lucky, I spend most of my time working on implementation projects, which means that I’ve been working in Dynamics AX 2012 since it was released, but last week I visited one of our customer sites and they’ve been using AX 2009 since 2010. Wow –there’s a lot of functionality missing! Process industries; Warehouse management; Transport management; Trade allowance management – they’ve all become staples for me, including this function: Inventory trace.

Now you’ll probably know that an Inventory trace function has been around in Dynamics AX since, well forever. The scenario here is typically a food company – and we’re wanting to track the batches of ingredients and raw materials that have made it into a batch of finished goods product. I’m in the demo hyper-v image and I’m using the ‘Contoso Orange Juice’ USP2 company. If we look at a typical finished goods product like Apple Cheesecake and look at its inventory transactions we’ll see some production receipts and some sales order issues tracked by batch.


Select an issue (for example) and click on Inventory > Trace:


There’s some pretty self-explanatory setup options on the Setup tab, including a direction: forwards or backwards. Forwards is forwards from a raw material to a finished goods – obviously here we’re wanting to trace backwards from our finished goods to the raw materials. Click on the little + sign to expand the tree (sorry I don’t know a short-cut to expand the whole tree) and we quickly see the ‘Production’ production order receipt for this batch and the ‘Production line’ production order issues of raw materials ingredients and intermediates. You also quickly get back to the purchase order receipts of your raw materials:


Right-click > View details will take to each individual inventory transaction – and from there you can start another trace – but of course, now, there’s an easier way

A new function was introduced in Dynamics AX 2012 R2 CU6 and it’s the Inventory trace form Inventory management > Inquires > Tracing > Item tracing:


Here I’ve opened the form and typed in my item number and batch. This form does require an item number and a batch number. There’s the same Trace direction option on this form as we saw above, but this time it’s more to do with the way the trace tree is displayed than the actual trace direction. So as you can see above, you’ve only got one option – click on the ‘Trace’ button:


So our tree is displayed as above – but we’re in a much richer work-bench style form here with lots of useful functions. First up is the Batches button:


Up pops a list of all of the batches involved in the supply chain tree, and from this form [if you have the appropriate security profile] you can immediately lock down any other batches by changing their Batch disposition code.

Obviously the supply chain tree can quickly get complex. Fear not. Click on the Transaction button and all of the inventory transactions in the tree are presented in the familiar list grid:


Of course you can filter in grid – or export to Excel and filter.

The Customers button gives you the list of customers you’re just about to ring:


Here you’ve got instant access to their contact details and sales history.

Shipped sales order lists the inventory transactions related to sales:


But you probably went to ‘Not shipped sales orders’ and got on the phone to the warehouse first:


I’m sure you’ve got the idea by now – just one more thing to show off. The ‘Shipped to customers’ report:


Actually we found that was one thing we could improve on – we were working on an implementation where all export sales orders went through off-shore distribution companies, so the first time we printed this report the only customer details we saw related to the intercompany sales from the manufacturing company – fortunately it was a simple modification to add the ultimate end customer details from the selling company into this report.

Tucked away at the bottom of the form are a series of fast-tabs that give you lots more useful information – this time related to whichever inventory transaction you select in the tree.

In this simple example I’ve traced back from a finished goods batch – you can trace forwards from a raw material batch – or start in the middle with an intermediate or coproduct. You can even enter the vendor batch number and trace forward form that (providing that you registered the vendor batch number when you did the purchase receipt as explained here ).

If you’re interested in this topic you can find a great demo script on PartnerSource – search for “AX 2012 Solution demos” and/or “SCM demo script – Item Tracing” (or get your partner to do that for you – that’s your reseller partner, not your spouse). If you’ve got a log-in to PartnerSource the page you want is here.


Desert island customisations 7 of 8

Continuing my occasional series of my favourite customisations, I was reminded of this one the other day when I was setting up batch jobs for a new site.

By the way, we found out the hard way that that if you disable the user that created the batch job, the batch job stops recurring. You’ve probably guessed how we found this out, but I’ll tell you anyway: we were given our own personal log-ins, so I created batch jobs logged on as my user. Later when I left the project my user id was disabled, and oops, the batch jobs I’d created stopped recurring. But I still don’t know why it took them six weeks to notice that the master planning batch job wasn’t running. So now I create all of the ‘system’ batch jobs, like alerts, as the Admin user.

Incidentally you have to be logged on as the user that created the batch job if you want to change the parameters the job is using (or you receive an ambiguous ‘AOS validation failed’ error message) – that’s another reason for using a generic service account type user to setup your batch jobs. You don’t have to be logged on as the user that created the batch job to change the recurrence though.

So what needs customising – well the recurrence tab lets you setup a recurrence for every few minutes:


Or Hours:


But what I really want is to be able to define something like ‘Every 10 minutes, but only between the hours of 8am and 5pm, Monday to Friday”

The Monday to Friday bit could be done if we could see these ‘Weeks’ settings when we select Minutes or Hours:


And then the only other thing we need to add to this form is an ‘Ending time’ and well as a ‘Starting time’, and the system’s got all the information it needs to setup a decent batch schedule.

I couldn’t resist a quick peek at AX7 ‘the new Dynamics AX’ to see if anything has changed, but unfortunately, not in this area: