NOTE: The below describes Dynamics AX 2012 functionality but is mostly valid in 2009 and earlier versions.
In Engineer-to-Order companies, it is really not feasible to back-flush all materials, because BOM’s are not all accurate yet, a learning curve on the floor is also typical, so we will have to find out what really has been consumed on the floor and report this accordingly. Dynamics AX has a number of options for manual material consumption that we will discuss in this blog post.
Option 1: Create the Picking list journal automatically during the “Start” status without posting it. When ready, modify the journal lines manually where necessary and post. This is very easy to do. One can create and print the Picking list journal during start. No info-log will show (because nothing gets posted), but the Journal will be there, un-posted and ready for updates.
Option 2: Once the order has been started without the Picking list Journal creation, create the Picking list journal semi-automatically by using the “Create lines” option. The “proposal” field has a number of very useful choices, like “remaining quantity”, “started quantity” or “estimated consumption”. In Engineer-to-Order companies production orders are often started with shortages because the production order will be open a few weeks and materials will arrive on time. In that case we will fill in the operation number and choose “started quantity”. (this assumes we have created links between BOM-lines and routing operations) Towards the end of the order, the value “remaining quantity” is very useful. If big mistakes were made with the materials, we can use the value “full reversal” which is exactly what the system does when you “reset status”. The great advantage is that you just reverse the material. Labor and Report as Finished quantities remain untouched. Especially when using Manufacturing execution, the full reversal is useful.
Option 3: Create a manual Picking list journal. This is a lot of work and I cannot see it necessary unless we have a “return materials to warehouse” scenario. If this option has to be used, it is very important to not enter an item number but pick from the list of Lot-ID’s. That Lot-ID list only offers items that are currently in the PROD-BOM table. It also guarantees that the “quantity” tab in the PROD-BOM shows which quantities have been “released” and where we still have unreleased quantities. Without using the Lot-ID, the system will add new lines to the PROD-BOM. It is good to realize that Dynamics AX does not stop the user from consuming any item into a production order. Some companies I know have restricted access to the item field and only allow the Lot-ID field to be used!
The picking list journal and inventory locations
We know we can hard-code the warehouse in the BOM-lines. But a much better option is to use “resource consumption”. The system will enter the warehouse it finds on the Resource group. But what is the logic for finding a location?
Search priority 1 is the Resource group. It there is a default issue location defined, that location will be populated on the Prod-BOM line itself. (NOTE: in DAX 2009 this is not the case).
Search priority 2 is the default location of the item. (Warehouse item) The system will put that location in the Prod-BOM line. (it will be actually populated)
This works for companies where items have a fixed location in the warehouse. In this case the Picking list Journal will also show the locations on the line.
If the warehouse is using random locations, we can’t set any default issue location. The system will have to find a location with available on-hand inventory during the automatic reservation procedure. (FIFO, if we check the appropriate box in the Item Model group). In this case, the system will not populate the location field on the PROD-BOM line. It is possible the on-hand is found on multiple locations.
The picking list journal will find the locations from the reservations that are in existence. The Picking list journal will NOT show the locations and will NOT print these locations. If multiple locations are involved in the reservation, the Picking list journal will have only one line per item, but in the background multiple locations can be seen in the reservation screen. (Customization needed to print the locations on the picking list where inventory has been reserved)
Returning materials to stock
When I have over-issued materials or if I want to return material for any reason, it is easy to create a negative Picking List Journal line. But a warning about not using the Lot-ID is really important here. Dynamics AX allows any item to be ‘returned’ so I can create a material cost credit using items that have no relation at all with this production order.
We should use the Lot-ID selection to return items back to the warehouse to control this. But there is one drawback.
The location the system will return the item to, is going to be the same location it was issued from. That is not always what the business wants. One can enter a specific location in the Picking list journal, but the system will ignore that, when we have selected a Lot-ID, and it will use the location it knows from the Prod-BOM line. This is the only drawback of using the Lot-ID. Without Lot-ID, one can of course return the item to any location. When a component appears damaged and we want to send it to a MRB (Material Review Board) warehouse, we can’t do that when we use the Lot-ID.
A request for enhancement in this area has been added to the Connect-site and we would like to get votes for that feature. (id-787260)
Material shortages problem
We have often added a shortage report as a customization for many customers. This is not a surprise. If we want to follow the APICS rule: “only release Production orders after a shortage check”, which implies we do NOT release when there is a shortage (to avoid creating stagnant WIP), we don’t have it entirely easy when we want to translate this into Dynamics language. We would first say “start” instead of “release”. Because we can’t create a Picking List journal before the order is started. Then we can “validate“ in order to detect shortages. That will certainly give us the information. We would have to reset status back to “scheduled” if we would have shortages. So it is understandable that customers wanted a custom shortage report or inquiry before the release, the production order being in any status between “created” and “started”. This does of course create a dilemma.
Suppose I have a limited supply of a critical raw material. I would have enough for two production orders, but not for three. If I run my shortage check for one order, should the system only look at the demand for the actual production order I am on? If I answer ‘yes’, I’d better know exactly what I am doing. Each order will show “no shortages” but taken together, one order will not have enough material.
The report should look at the total “on order” for each material and check whether that is higher then what is “unreserved on-hand” or “available on-hand”. Then the orders will be analyzed in start date sequence, (first come, first serve) and the order with the latest start date will be the one to have a shortage.
This means that a report that only prints the shortages of one individual production order, has limited value. Yet I have seen that work fine if the user is checking the production order shortages using earliest start date or a priority. When the reservation is established as late as possible, at “start” (a good choice if you want to remain as flexible as possible with the reservation of your materials), then we will immediately release and start those orders that do not have shortages, reducing the “physical available” for the next order.
Other ways to see a shortage
On the Production Routing there is a “Materials” button that shows the Physical available quantity for all materials linked to that operation. If we do not link BOM – lines to operations, we will see all materials under operation 10. No special alert will be visible when there is a shortage so we can only check each material separately. If we have all materials showing under operation 10, we could do a Select filter using an SQL statement that says ‘Estimated qty > Physical available’. This would give you your shortages.
We can of course run the Explosion for the production order and check where we are not covered with “on-hand”. The tab “Critical on-hand inventory” shows all materials and if there is a no quantity in the column “on-hand settled” we know we have a shortage.
The explosion can be run as soon as the Production order is past the status ‘created’.
So there are a few options to find shortages yet it is understandable that many customers have chosen for a special “shortage report” that then can be given to the warehouse personnel. (this would be a consolidated shortage list for all production orders scheduled to start in the next week)
Reporting an order as finished with materials “short”
Reporting an order as finished while materials are not all “released”, is possible without having to adjust the net quantity on the Prod-BOM line to zero. The ‘end mark’ checkbox for BOM consumption will do this. Even if I would have no materials issued at all, the ‘end mark’ will let me switch the status to “Report as Finished”. So this checkbox is quite dangerous.
One should be careful making it ‘yes’ by default in anybody’s default values. But of course it is very valuable if the BOM was not quite correct and we want to legally finish this production order with outstanding material demand. (“not released quantities”).
How to adjust the Prod-BOM
As you probably know, deleting BOM lines is not allowed when I am past status “created”.
But the system has nothing against a quantity change or a new BOM line as long as the status is not “Reported as Finished”.
So if we need to delete a line, we simply reduce the quantity to zero and re-estimate.
In the next blog “Production control tricks and tips” we will talk in detail about the handling of order quantity changes, use of the ‘bad quantity’ , serial and batch numbers, and all possible error messages at Report as Finished time.