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


3 thoughts on “Batch disposition codes in Dynamics AX 2012

  1. Thanks for your quick reply.
    Unfortunately, late reservation is not an option for us, for business specific reasons.
    We are planning to move to WMS, but only after go-live (I guess 6-12 months) .
    I posted the question on the suggested Dynamics forum, I’ll see what ideas come up there.


  2. Hello Tim,

    I’m a newbie to AX, we are in the process of implementing AX 2012 R3, not yet live.
    I really apreciated your blog about quality orders and batch disposition codes.
    Our implementation partner was unaware of these configuration possibilities, and they were suggestion code customization to achieve what you did with configuration. I showed them your blog, and that has been a big help for us, kept AX standard with only your “minor customazation”.

    Now we have another problem, that our partner has “solved” with code customization.
    We regularly have to do transfer journals. Problem is that we cannot create a transfer journal when the stock is reserved, which is often the case (for multiple sales order lines). Is there a configuration setting that makes it possible to use transfer journal without first unreserving the stock and re-reserve the stock after posting the transfer journal? The current code customization from our partner doesn’t work correctly and messes up reservations and some values in colums in On hand stock.

    Another related question:
    When the transfer journal is created but not yet posted, it fills 2 colums in on-hand stock form: Ordered in total and On order. Although it is not a big problem, we find this confusing.
    Is there a configuration setting to prevent these colums from being updated by transfer journals? Our partner has also solved this by code customization. This customization seems to work OK, but they’ve only done 1 form while these and other related colums show up in many different forms, we don’t know where we’ll end with this customization.

    Jan den Ouden


    • Hi Jan – thanks for the comment. reservations and transfer journals is a bit off message for this post, and it’s difficult to resolve subtle issues in this form. It’s be a good idea to post your questions on the Microsoft Dynamics AX Community forum:

      For sales order reservations, my preference is to reserve the sales order as late as possible (for instance just when posting the picking list) – thus avoiding the issues you’ve hit. Because, as you have found out, customisations of inventory reservations and transactions aren’t easy to get right.
      Or you could look at pallet transfers (if you don’t have advanced warehousing) – although as you are on R3 you ought to look at Advanced warehousing for your sales order picking and reservation processes.
      I feel your pain though – one customisation just seems to lead to another. Bite the bullet and stick to standard (invest in a bit of training / education). Worse in the short run. Better in the long run.



Comments are closed.