Production order back-flush using Warehouse management in AX 2012 R3

The other day I had a bit of a panic attack when I was asked to setup production order back-flush from a Warehouse management warehouse.

Back to basics – back-flush is the issuing of the production order components defined by the bill of material when the production order item is reported as finished. “I’ve made one of A, so I must have used up one of B, two of C, etc.”

I’ve created the world’s simplest Bill of material. My item FG1 is made from 1 each component WHS6:

The WHS6 component has a Flushing principle of ‘Finish’:

(Pedantically we’d have to mention that the Flushing principle can also be defined on the Bill of material line, but let’s not get too bogged down in minutiae).

One of the changes brought about by Warehouse management is a couple of new production parameters. Production control > Setup > Production control parameters:


We now have the option to reserve inventory at production order release. In Microsoft Dynamics AX 2012 R3, to create picking work for production, the picked material must already be reserved. The ‘Release to warehouse’ parameter controls whether the production order will be released to the warehouse for picking if you haven’t got the full quantity of components required to finish the order.

The default policies can be overwritten for a specific order, when you manually create an order. When firming planned orders, the default settings are used. After you create the production order, both policies can be manually overwritten on the production order.

So back to the panic. I realised that in Warehouse management reservation doesn’t give the system enough information to issue the component when I back-flush. Reservation is, of course, controlled by the item’s reservation hierarchy and only reserves the dimensions above location – so for my item WHS6 (which is batch tracked) even after reserving the item at production order release I still won’t know the Location (or licence plate) to issue when I back-flush:

So we’re going to need to release the production order picking work to the warehouse, so that Location directives can send us to the correct location, and then we’re going to have to pick the components.

Fortunately, this can be automated. We now need three more pieces of setup, a Wave template, a Work template and a Location directive.

Warehouse management > Setup > Waves > Wave template:

Note that the Wave template type is set to ‘Production orders’

Warehouse management > Setup > Work > Work template:


To be valid, a work template has to have a Pick and Put pair – we know we’re going to pick from the item’s current location, but where are we going to put it? We need a default Production input location for our warehouse – it doesn’t have to be licence plate controlled, but of course it must allow mixed items.

Warehouse management > Setup > Warehouse setup > Warehouses:


Warehouse management > Setup > Location directives:

My Pick Location directive will pick batch controlled (and non-batch controlled) items from Bulk locations. I don’t need a Put directive because we’re going to put them into the Default Production input location set on the warehouse (‘BACKFLUSH’ in the current example). When the items are put into that location the system updates the status of the inventory transaction related to the production order BOM line to ‘Picked’.

(I know that was 4 pieces of setup – what have the Romans ever done for us?).

Now let’s see if it’ll work.

Back on my Production order I create a production order. I’ll start the production order and that automatically releases it:

Something happened! Let’s look at the production order’s warehouse work:

Even though I had ticked ‘Automatically process’ on my Work template – the work isn’t processed. (It seems that only sales order picking and transfer order picking can be automated).

Let’s complete the work in the client:

Finally – check the inventory transactions related to the Production order BOM lines and sure enough, we have picked the components, and we now have all our inventory dimensions filled in ready to be issued when we back-flush from the production order Report as finished:

But wait – there’s more, as they say in those terrible TV ads.

In this example I setup my bulk storage locations so that they were not licence plate controlled. However, if my warehouse work pick from is a licence plate location the warehouse work assumes that I’ll move the whole licence plate from my bulk locations to my back-flush from location. In effect we’ll always move whole boxes or cartons of components out of main storage and make one carton available to production to help themselves from. This is commonly called ‘Staging’.

Typically, at the end of a production run that leaves a balance of inventory in the back-flush/staging location and once that is set up, something interesting happens when you release (or start) the production order.

Here’s my on-hand after I’ve done a staging move into my back-flush location:

Create a production order as before and start it:

You have to look really closely at that message to realise that it’s telling you that it hasn’t created any work:

It didn’t need to, because the components were already sitting in the back-flush / staging location, and if you look at the inventory transactions on the production order BOM line, as expected, we’ve picked the next batch to be used:

That’s really neat and maps really well into the real-world business process for staging production orders, counting back-flushed stock at the end of production runs, and if required returning inventory from staging back to main stores.

Create a mailing list in AX 2012 R3

So this is a bit of a ‘golden oldie’ but the other day we had the requirement to generate a mailing list and print out some address labels for a good old fashioned (paper) newsletter.

First we had to remind ourselves about the contact person setup for customers. Imagine that you had a customer called Adaptable Solutions Ltd and you want to record the names of a few folk who work there and are interested in your products. Locate the customer record.

Sales and marketing > Common Customers > All customers Customer > Accounts > Contacts and click on Add contacts:

Create a contact record for each employee in the business that you want to contact:

Then on the Competencies Action tab Click on the Interests button and add Interests (adding Interests to the main table as required):

Generate the mailing file by going to Sales and marketing > Periodic > Mailings > Generate mailings:


I’ve created a Category and Item and used the Select to filter for the contact interests:

The system’s populated the Mailings table, Sales and marketing > Periodic > Mailings > Mailings:


Obviously, we’re going to use the Functions > Create mailing file function to create our mailing file (Or we could use the same function directly from the menu option Sales and marketing > Periodic > Mailings > Create mailing file):


The system’s going to create a CSV file with the information I need for labels:

Now we just need to complete the job in Word.

In Word, Click Mailings > Start Mail Merge > Labels and select your label design:

Now to select the mailing list we generated from Dynamics AX, on the Mailings tab, click Select Recipients > Use an Existing List, and select the file you created earlier.

To get the Names and addresses on to your labels, click Address block, and then Match fields to select the fields from Dynamics AX that you’re going to use:

When you close the Match fields form, check your layout in the Preview pane, then click OK.

If you want another check, back in your Word document click Preview Results, and then click the arrows to make sure the labels look right, and finally when you’re ready, click Finish and Merge, and then click Print Documents. (If you want a final check, just print the first page of labels, and then if everything lines up, come back and print all labels).

You can save the mail merge document, and it stays connected to your mailing list (the file generated by Dynamics AX). To use the mail merge document again, re-generate the Dynamics AX mailing list and open your mail merge document and click Yes when Word prompts you to keep its connection.

Vendor batch registration in AX 2012

For purchased, batch tracked, raw materials and items, the inventory batch master allows you to record a vendor batch number for your own internal batch number:

Inventory management > Inquires > Dimensions > Batches:


These details are updated via the ‘Reset vendor batch details’ menu option shown above, but you can also setup the system to prompt you to enter this information when you are receiving a purchase order.

There is a ‘Purchase registration’ setup option on the Item model group (Inventory management > Setup > Inventory > item model groups):

Let’s setup an item using this Item model group, a tracking dimension group with batch tracking, and a batch number group which creates batch numbers automatically (and sets the batch number to the purchase order number). Then create a purchase order:

We’ll use the Arrival overview to start the receipt process (Inventory management > Periodic > Arrival overview):


Select the purchase order / lines and click ‘Start arrival’. The system creates an arrival journal for the selected lines and displays an Infolog:

Double-click on the journal number in the Infolog as a short-cut to the journal (or from the Arrival overview form use the Journals > Show arrivals from lines option). The system takes you to the Journal header:

(As an aside, later we’re going to post the Purchase order product receipt from this journal header. On the General tab is a field where you can enter the Packing slip / Delivery note number. I like to personalise this form to show that field in the overview grid and enter it at this point). Also I’m not using pallets here so I need to un-tick the ‘Check picking locations’ option on the journal names setup (or the journal header, and lines).

Click on the Lines button to display the lines:

Here’s where you are going to record the put-away location for your items and confirm the received quantity. There’s a function to split lines (but beware of the function to delete lines – it deletes all lines, not just the one you’ve selected).

When you click ‘Post’ to register the receipt, after the journal is posted, a pop-up form appears, and here’s where you record the vendor batch details:

If you select the Batch number line in the bottom grid you can use the document handler to attach documents to the Inventory batch record, and you can use the Description tab to record any other relevant details.

Close the Vendor batch details and Arrival journal lines forms, and post the Purchase order product receipt from the journal header and you’re done.

Of course, you’ll be wanting to use the new Warehouse management functionality, so create a purchase order as above and then use Purchase Receive in the Warehouse management mobile functions:

Enter the purchase order number:

Enter the item:

Enter the quantity:

And confirm the unit of measure:

And the system displays:

If you leave any fields blank you’ll get a warning, and then you get:

From the purchase order you can see that your purchase order receipt is registered, and the vendor batch details have been recorded:

That’s really cool.