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.