In Microsoft Dynamics NAV, it is possible to do reservations on inventory. This can help us manage our inventory more effectively. Let's discuss the reservation process with a customer scenario.
One of our customer orders 100 black t-shirts size M on January 22, 2015. Currently, we have 120 in our inventory so we can ship them without any problems. The customer wants to have them delivered on November 18. We enter a sales order with the shipping date and release the order.
The next day, another customer calls for 40 black t-shirts size M. Our inventory is still 120. This customer wants to have them delivered on May 31. We enter the sales order without a warning. Lastly, we will create a new sales order for 90 of the same t-shirts with a delivery date on July 25. Now, we get the following error message:
And if we now go back to the second sales order and re-enter the quantity, we get a similar message.
The reason this happens lies in the way Microsoft Dynamics NAV calculates the gross requirement:
This is a two-step method where first, the requirement is calculated until the shipment date of the sales line and secondly, a Lookahead
function is called using a date formula that is defined in the company information table.
The C/AL code that is used to calculate the Lookahead
can be found in the QtyAvailabletoPromise
function in codeunit Available to Promise (5790).
QtyAvailabletoPromise
Item.CALCFIELDS(Inventory,"Reserved Qty. on Inventory");
ScheduledReceipt := CalcScheduledReceipt(Item);
GrossRequirement := CalcGrossRequirement(Item);
IF FORMAT(LookaheadDateFormula) <> '' THEN BEGIN
GrossRequirement :=
GrossRequirement +
CalculateLookahead(
Item,PeriodType,
AvailabilityDate + 1,
If this Lookahead
functionality is not detailed enough, we can start using the reservation process.
The Reservation option can be activated on the item level and customer level and can be set to Never, Optional, and Always, as shown in the following screenshot:
Let's see what these options signify:
Microsoft Dynamics NAV uses the Reservation Entry (337) table to store the reservation entries. Reservation entries can be connected to all outstanding documents and journals and posted entries. This is done using the following source fields:
There are four types of Reservation Entries in Microsoft Dynamics NAV represented by the Reservation Status field:
Let's go into the application and create a reservation to see what entries we get in the database.
We will do this using a new item. The item should have a Description, Base Unit of Measure, and a Gen. Prod., VAT Prod., and an Inventory Posting Group. The default value for Reserve is Optional, which we will use for this example. The default costing method is FIFO, which we will also use.
Let's have a look at the Reservation Entries created in the database by running the table from the Object Designer:
A reservation entry of the type Reservation always uses to lines with the same entry no. The Source Type for the first entry links to the Sales Line table (37) and the second uses the Item Ledger Entry Table (32).
We ship and invoice the sales order and look at the Item Ledger Entries for our item:
We see that Microsoft Dynamics NAV has used the second item ledger entry, but the cost is 500, not the 600 from the second entry.
To correct this, we run the report Adjust Cost - Item Entries (795) and have another look at the Item Ledger Entries and the Value Entries to see that it is corrected.
We have seen that reservation entries are not only used for the reservation process of inventory and item tracking but also for balancing supply and demand. This is an internal option within Microsoft Dynamics NAV that allows us to link inventory internally.
The entries are used in the supply and demand calculation to create the requisition worksheets.
Let's create a copy of our reservation test item to see the differences between reservations and item tracking. This new item should have the Order Tracking Policy Tracking and Action Msg.
We will create two purchase orders with both a quantity of 50 without receiving them and create a sales order for the same item with a quantity of 80.
If we now select Order Tracking from the Sales Line Functions, we see that the system matches supply and demand.
Let's have a look at the Reservation Entries:
We can see that Microsoft Dynamics NAV is now using the Surplus and Tracking types. The 20 items we have left are not linked to a demand.
Let's start the Requisition Worksheet for this item and see what Microsoft Dynamics NAV can do with this information.