Batch disposition codes in Dynamics AX 2012

Working in New Zealand means that I get to work with a lot of food manufacturing companies, and that means that Quality management figures in most of our Dynamics AX implementations.

Batch disposition codes are an important part of the Dynamics AX quality control process. The normal configuration is that QC department staff have a security profile that will let them change a batch’s batch disposition code – normal sales and inventory users can’t do that.

You create as many Batch disposition codes as you need. The setup is found at Inventory management > Setup > Batch disposition > Batch disposition master. Here I’m creating a batch disposition code that will stop the batch from being reserved to, or picked on, a sales order:


The first field on the setup is the Batch disposition status – if you set that to ‘Available’ all the other settings default and can’t be changed:


It may not be obvious from this screen-shot, but all of those checkboxes are de-activated.

Apart from the fact that these are mostly ‘yes we have no bananas’ yes/no flags – you can see that we have settings for Sales orders; Inventory transfers (transfer journals and transfer orders); Production orders; and Master planning. Except for the master planning setting you tick the box to block that action. Note. These are all blocks on issues – there’s no way to block a receipt with a batch disposition code. For sales, ‘Block shipping’ prevents the sales order delivery note posting (WMI or WMII), but you can still ‘Send’ an inventory shipment (WMS II). However, you cannot confirm an outbound shipment in an advanced warehouse management warehouse (WHS).

I’ve setup an item with two batches. Inventory management > Inquires > Dimensions > Batches:


And I’ve created some on-hand inventory by posting an inventory adjustment journal.
Inventory management > Journals > Item transactions > Inventory adjustment > Lines:


As mentioned above, no blocks on receipt. The batch which ought to be reserved first has my ‘No-Pick’ batch disposition code. The other batch is ‘Available’. Next, I create a sales order for this item:


If I select Automatic reservation, unsurprisingly, the system chooses the later (Available) batch:


If you want to try manual reservation, although the on-hand will show you both batches:


The reservation form won’t let you reserve the blocked batch:


You can try to get around this blocking by creating a picking list for a WMI style warehouse without reserving inventory. The reason I’m doing this is that I’m working with a company making food products – but they don’t have racking in the warehouse. Pallets are stacked one on top of each other, so Dynamics AX reservations which works on FIFO or FEFO principles doesn’t work for them because the system is often reserving pallets or batches which are inaccessible. They prefer to create sales order picking lists without reservations and then update the picking list with the batches/pallets actually picked.

So on the picking list registration for we’ll see something like this:


If I try to update that picking list without entering a batch number I’ll get a not particularly helpful error message:


No matter, I know I need to enter a batch number and the system’s offering me two:


But if I enter the [earlier] batch that has got ‘Block picking’ ticked I get this error:


So that’s a pretty robust system. Simple and effective. And the system maintains a log of all changes to batch disposition codes, Inventory management > Inquires > Batches > Batch disposition history:


In advanced warehousing WHS warehouses the system’s a bit more rigorous. You cannot release the sales order to the warehouse unless you have the inventory reserved – and we’ve already seen that automatic reservation follows the batch disposition codes, thus there’s no work-around to release work to the warehouse. If you allow reservation, but blocking picking, well that doesn’t work either – because you get a work creation error like ‘Batch TS-B2 cannot be picked as batch disposition code setting is blocked for picking’:


You can setup a batch disposition code that allows reservation and picking, but blocks shipping:


That will allow you to release sales order picking work to the warehouse and complete that work, but you cannot move any further through the process without changing the batch disposition code. When you try to confirm the outbound shipment you get an error:


So the moral is: “if you are batch tracking, get to know your batch disposition codes and use them”.

The cost analysis workspace in the new Microsoft Dynamics AX

I was catching up watching a couple of videos last night and spotted a new workspace which is being shown in the new Microsoft Dynamics AX (aka AX7): the Cost analysis workspace.

Once again we’re seeing functionality that’s been missing (in my case sorely missed) from earlier versions of Dynamics AX – inventory turns and slow moving inventory:


Scroll to the right on this workspace and a couple more graphs appear:


‘Inventory value over time’ – that’s neat, when we marry that up with customer service level we’ll have a great overview of the health of our supply chain.

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.