Dynamics 365 SCM: Do not reserve in Inbound
You are going to have this error in Dynamics 365 Warehouse management, guaranteed. The error manifests itself at the production order picking or at sales order picking: the picking location is empty. Depending on the Location directive failures setup under the Warehouse management parameters this is going to either create a broken warehouse work or throw an error, but the outcome will be bad in any case. This issue can occur when materials or merchandise have arrived but have not yet been put away in their expected location. They are not on the shelves but still somewhere in a staging area, possibly waiting for sorting or expecting a quality control. If your location directives are correct, you may need to adjust your inventory status settings to prevent this issue from happening.
The below recipe was invented either by Carsten or Thomas, maybe Nicolas, all kudos to them, I have just picked up the torch, refined the recipe and shared it with my colleagues and customers at 2 other implementation projects.
In a nutshell, create a new Inventory status called INBOUND and assign it to every purchase order. Make sure every sales or transfer order becomes the regular inventory status AVAILABLE. When a production order covers the demand, it will inherit the “Available” status and pass it to the BOM lines. Only “Available” raw materials will be reserved, not “Inbound”. If you attempt to release the production order, it will fail, because the reservation will misfire (but only if you install my fix Production order should not get Released on material shortage). This is a desired behaviour, because the materials have not been inspected or deconsolidated yet. The “Inbound” inventory status remains transparent to master planning and won’t be replenished unless the quality inspection fails and the goods become BLOCKED.
To implement this scenario, you’ll need to adjust some very specific parameters throughout the system. Below are the notes to myself:
- In Warehouse management > Setup > Inventory > Inventory statuses, add a new inventory status called “Inbound“. Do not mark it as inventory blocking; it only needs to differ from the “Available“.
- In Warehouse management > Setup > Warehouse > Warehouses, do not set the default inventory status ID at your advanced warehouse, as it will overrule other settings.
- In Warehouse management parameters, set the default inventory status ID to “Available” and mark Use default status for sales orders and transfer orders to force most material demand to look for Available items only.
- Ensure that every purchase order line becomes a different status by assigning the default inventory status ID “Inbound” to every supplier, new or existing (Accounts payable > Vendors > All vendors).
- Turn OFF the Reserve ordered items inventory parameter in Inventory management > Setup > Inventory and warehouse management parameters. To be honest, I have not seen any customer yet who benefited from the reservations in purchase orders not yet received, it just messes things up. If you do let the system reserve in open purchase orders, it is going to reserve the Inbound status, which is clearly not our intent, and the picking location will be empty again.
- Now it becomes tricky. If you use master planning, do not firm planned orders in the Standard or– God forbid – Extended Update marking mode. This marking will again be later converted into a fixed reservation of the materials / merchandise in the Inbound status. Instead, carefully set the default Update marking mode in Master planning > Setup > Master planning parameters. In a retail/distribution scenario, choose “None”. In a MTO (manufacture-to-order) or a ETO (engineer-to-order) scenario, choose Single level standard. The latter is quite a new addition to Dynamics 365 SCM: D365 New Feature – Make to order supply automation – Logan Consulting. This will establish a link between the Sales order and the production order, but not their lines or lower-level production orders to purchase orders. If there is a strong need for a chain of assembly / sub-assembly’s production orders, you may still use the Pegged supply BOM line type. This will make the upstream production order a derived requirement and it will establish a firm marking between the top-level and bottom-level production orders.
- Configure a recurring batch job in Warehouse management > Periodic tasks > Change inventory status to quickly update the status of “Inbound” items to “Available” once they are put away in their regular storage locations. Find a good set of criteria to capture all regular locations for storage and picking:
By following these steps, you can avoid the empty picking location error and ensure that your inventory status settings are correctly configured.
Warehouse management blog series
Dissecting the Warehouse Management app layout
Dynamics 365 SCM: Do not reserve in Inbound
Bye-bye work report, welcome wave labels!
WHS Label copies, Custom work, display methods on labels
Towards the deconsolidation in Dynamics Warehouse Management
Auto-post inbound delivery notes in a batch
Input validation and messaging in the Process Guide Framework
WHS Emulator screen in Dynamics 365
2 Comments
Hello Eugene,
Thank you for this post (and the other as well).
If you allow me, I would like to expose a different way to see this.
I do not discuss about the marking. Just the way to initiate the inventory status.
I have the same set up for step 4 : default inventory status for every supplier : INBOUND
I would have the same batch to change the inventory status (step 7). I will try to add the table locations in order to have the filtrer based on zoneID. but globally : the same.
I would add : for every customer, have a default of : Available-Sales.
in the warehouse : I have a different setup : default inventory status : Available-Prod.
in the setup : “default item status” : for inventory, for the finished product : “inbound-Prod”.
Let me explain : I have purchased items that can be sold (without transformation), and the same item can be used as raw material for production.
So, I want to use the inventory status in order to be able to find the right stock (the one in bulk, not the one on the dock). Same solution as you do.
Moreover, I want the salespeople to be able to reserve on sotck dedicated to them : you understand the status : Available-Sales.
I want the production people to be able to reserve on stock dedicated for them : you understand the status : available-prod.
In my testing, the only one way to assign an inventory status to a Production-BOM-Line is with the default in the warehouse.
Lastly, I have added an inventory status Inbound-Prod to have a similar process as you do for receipt : when the production order is done, it is not yet in bulk locations.
Yes, it means that the triage is heavily done on the inventory status. But it seems to be the best way to avoid reserving something that is not ready yet.
Let me know your thoughts, and if you think this is stupid or not.
Best regards, Lionel
Bonjour, yes, this used to be the first iteration of my setup, setting the default inventory status per item. However, items are usually added more often than customers (and certainly suppliers), and the product data managers must be drilled to add the default inventory status(es) every time a new product or raw material is released. In addition, in my practice, sales managers often monitor and actively reserve finished goods wherever they are stored – on the production floor, or in the main stock.
Pour résumer, vous êtes en soudrent d’un probléme different, plus difficile.