Quality orders in AX 2012

A couple of times now I’ve been asked to demonstrate Dynamics AX Quality orders to a company that is using Dynamics AX – but isn’t using Quality management.

This walk-through is the minimal setup for this – but isn’t pretending to be a real world implementation, however I that hope you’ll see enough functionality here to realise that for many manufacturing companies Dynamics AX Quality orders provide a good basis for building sensible business processes.

So off we go with some basic setup – by the way if you look at the Quality control menus you’ll see options that I don’t mention (like Test areas and Test instruments), remember that this post describes the absolute minimum of setup that you need to do to demonstrate quality orders – there’s much more functionality here than I’m attempting to describe.

Although quality orders can be used without batch tracking, every time I’ve used quality orders they have been related to batches. First then, we’ll setup some Batch disposition codes. Inventory management > Setup > Batch disposition > Batch disposition master:

You’ll need three Batch disposition codes to drive the Quality order process:

  • The default Batch disposition code you’re going to assign when the batch is created or received from a purchase order or a production order. I’m using QC-Hold here, and you can see that I’ve set it up so that the inventory can be transferred from one warehouse to another, but not sold or issued to production. It’s also ‘Nettable’ – which means that the inventory is counted as stock on hand by Master planning. You’re being optimistic here, and assuming that eventually the batch will pass the QC tests. Obviously you can have this code setup however you wish to suit your company’s requirements.
  • The batch disposition code used once the quality order has been passed – I’m using QC-Pass and the setup is no blocking at all, and Nettable.
  • Finally we need a Batch disposition code used if we fail the quality order tests. That’s fully blocked, and not Nettable (so that master planning prompts you to replace the batch) – but you might want to transfer this inventory out of your main warehouses so I guess you might have QC-Fail setup to allow inventory transfers – or you could use other batch disposition codes to handle batches that fail QC.

You setup that default Batch disposition code on the Item model group. Inventory management > Setup > Inventory > Item model group:

The next thing we setup is a ‘Test’. A quality order consists of one or more tests. Tests can record integer numbers, fractional numbers or options (lists). Numeric tests are setup with Pass/Fail ranges, but I’m going to setup one simple Pass/Fail option test. Inventory management > Setup > Quality control > Tests:

The options for this test are setup as a Test variable. Inventory management > Setup > Quality control > Test variables:

Next we need to setup a sampling regime. This serves a couple of purposes. When we record results against our quality order we need to record tests for our sample size, and also we have the option of setting the quality order as being ‘Destructive’ – in that case this setting tells the system how many units to write-off. Inventory management > Setup > Quality control > Item sampling:

<<A little grumble-gram here. That inventory blocking option relates to an inventory blocking order created when the quality order is created. We don’t need an inventory blocking order here, because we have the more sophisticated Batch disposition code control – but there’s no way to stop inventory blocking orders (without using a minor customisation).>>

The next bit of setup is a Test group. A test group is one or more tests (think of it as a template quality order). Inventory management > Setup > Quality control > Test groups:

So now I hope you can see that we’ve brought together most of our previous setup.

On the Test group General tab you specify the Pass / Fail batch disposition groups:

And on the Test group lines Test tab we link our Test variable to our test (or for a Numeric variable specify the Pass/Fail ranges):

Nearly there – the last bit of setup is to assign the test group to an item receipt transaction (purchase receipt or production receipt). Inventory management > Setup > Quality control > Quality association:

This is a simple setup that will generate a quality order upon purchase order receipt. I’ve setup my item up to be batch tracked, and the system’s going to assign a batch number equal to the purchase order number when I create my purchase order line. Procurement and sourcing > Common > Purchase orders > All purchase orders:

I confirm my purchase order and then I post the Product receipt for 100, and I get:

Before we look at the quality order let’s look at the on-hand:

Not too unreasonably, the blocking order is holding the one we’ve got in the QC department for testing. Here it is. Inventory management > Periodic > Inventory blocking:

And here’s the Quality order. Inventory management > Periodic > Quality management > Quality orders:

To process the quality order, click the ‘Results’ button and this form appears:

Here you enter the sample size tested and the result. Once you’ve done enough testing and the results are OK the test result shows a Pass:

Back on the Quality order, all of our tests are showing as Pass so we can ‘Validate’ the Quality order:

The ‘Accept error’ checkbox allows you to set the Quality order status as Passed even if you have one or more tests with a Fail – you’ll probably want to use security to disable that option for most users. Click OK and the status of the Quality order is updated:

The inventory blocking order is removed:

And the Batch disposition code is updated:

That’s it folks.


20 thoughts on “Quality orders in AX 2012

  1. Hi Tim
    First off, thanks for yet another great post about AX.

    I am very curious as to how you remove the “Accept error” check box. I have not found a security object that allows me to remove this, and of course it is a major issue if the QA-inspector can just hit that parameter 🙂

    I look forward to your reply.

    Best Regard


    • Hi Kenneth, security isn’t my strong suit but I think that what you need to do is use the ‘Override permissions’ function on the security role. I’d start by taking a copy of the standard role (and edit your copy). If you can’t figure out how to do that post your question on the Community forum.


  2. Hi Tim,

    I’m new with this AX, and I’m still studying recently.
    I just want to know how to setup or use Quality Order by vendors in every sampling?

    Ex. We had 20 Raw Materials(the same CHEMICALS but different suppliers). This materials from different suppliers has different specs. Some Fails, others not. We want to trace the product by supplier through the system without tracing it physically.

    Pls help.

    Best Regards,


    • Hi, I got it. Thank you for the response. Highly appreciated.

      We agreed that we have to set quality order per items. But I found a problem with our product quality order specs. How can I setup the quality parameters for the item?
      Ex. A chemical compound with z4-z7 Viscosity quality range. Other product has different viscosity units. The fraction type will not accept numbers with letters parameters. Is there a setup that accepts this parameters? Or I had to set it up with no units.

      Thank you,


  3. Hi Tim,
    I am now using inventory status (not batch disposition) to control the availability of the product. However, Quality Order cannot process a test group where “destructive test” and “change inventory status” are checked.

    My scenario:
    Production Order RAF : 1000 pcs, and 10 pcs are tested for Quality checked.
    Once validated, I’d like the 10 pcs are removed from inventory, while remaining 990 pcs the status is changed from QC to Available.

    I understand By using Batch disposition, it will impact to all stock on hand using the same batch number. The problem is 1 batch number might be split into several Production RAFs. where Quality Order result might differ between RAF Journal.
    Let say: Production started Qty = 5000 pcs, I have 5 different RAF journals (@1000 pcs) with same batch number and stored at 5 different License Plate.

    Could you suggest the best configuration on above scenario. Thanks.


    • Hi – I agree that there isn’t a perfect solution. Most definitely, AX assumes that all material created in a production order batch is identical and interchangeable – and the situation I’ve hit is a batch of say 10 or more pallets. QC wanted to released some pallets while holding others. To meet that requirement we created a customized form that allowed them to split the batch (by creating a new batch and using a transfer journal to update the inventory batch number for selected pallets). So could you think about that, or maybe creating more batches at Production Report as finished time?
      My take on inventory status vs. batch disposition code is that Inventory status is something that should be available for update by warehouse staff, and while it’s related to QC, that’s not it’s only purpose. Batch disposition code is a QC code, and only QC staff should be able to change a batch disposition code. But that’s just my personal view, and I understand the limitations that you are struggling with.


      • Hi Tim, thanks for your prompt response.

        Since batch disposition code is not shown on “On Hand” form by default, is there any easy way to show it on “On Hand” form?



      • Hi. It’s a fairly simple customisation to show the batch disposition code. But it has to be done by a developer. The Batch disposition code should only be visible when the batch number is displayed.


  4. No update allowed : quality orders related are still opened.

    I gets this issue when i generate a new Stock qc order for a item that have changed configuration
    can you please help


  5. Hi Tim,

    We have recently implemented the use of Quality Orders within our company to facilitate the IQC process (Incoming Quality Control). I have set up everything and all seemed to be working correctly until all of a sudden upon receipt of a product a Quality Order was not generated. The product in question was listed within the correct Item Quality Group and the Quality Association linked to that Quality Group is set up correctly.

    One possible cause for this problem that i thought of;
    There is a previous Quality Order record for the same part number which references the same Purchase Order as the one i am trying to generate another Quality Order for. Which makes me wonder, are Quality Orders generated per Purchase Order or Per Purchase Order Line?
    Ideally i would like to get Quality Orders generated per delivery if it is possible.


    Jacob Newman


    • Hi Jacob, I’m on holiday and away from the system, but I think that you are correct in thinking that the previous quality order is the reason for you not getting another quality order. I forget where the setting is, but there is a setting which forces the system to generate a new quality order based on inventory dimensions, so that you can set up the system to generate a separate order for, for instance, each batch.


  6. Hi Tim, nice read :).

    A question regarding following:
    We don’t need an inventory blocking order here, because we have the more sophisticated Batch disposition code control – but there’s no way to stop inventory blocking orders (without using a minor customisation).>>

    How minor is this customization? Could you elaborate more on this?
    Thank you!



    • Hi Jan. I’m not a developer, but it’s always easier to remove code from a system than add it. Also it was a while ago when we did this, but I think that all is required is to comment out the creation of the inventory blocking order from the quality order, and it’s subsequent release. We did make it controlled by a new checkbox on the Item sampling form though, so that the folk who came after us would have a clue that we had done a customisation.


  7. Wonderful info shared here.

    I have setup same in Test system as shown in above. everything run accordingly but at the end Batch disposition code is not getting update from QC-hold to QC-Pass. Could you pls. help me where I went wrong?


Comments are closed.