Professional Documents
Culture Documents
Reservations in Warehouse Management For Dynamics AX 2012 R3
Reservations in Warehouse Management For Dynamics AX 2012 R3
Warehouse management
reservations that is introduced in Warehouse
management.
Send feedback.
Contents
Reservations in Warehouse management 3
Reservation hierarchies 3
Details about the implementation of reservation hierarchies 3
Making reservations on different levels 4
Reservation strategies 7
Details about the implementation of reservation strategies 8
The new reservation functionality can be used only for items that are enabled for warehouse management processes.
However, if an item is itself enabled for warehouse management processes, it can be used both in warehouses that are
enabled for warehouse management processes and warehouses that are not. The behavior in reservation scenarios is
different, depending on the warehouse setup. Later sections of this document will provide more details about the
differences.
The functionality is built on reservation hierarchies and is intended to support the following:
• Flexible warehouse operations
• Postponement of reservation details
• Clear separation of which inventory dimensions can be specified, and when they can be specified
This document describes the new functionality and provides information about how it is implemented.
Reservation hierarchies
One of the key components of the reservation system in WHS is the reservation hierarchy. The reservation hierarchy
defines the different levels on which reservations can be made. Each level represents a physical inventory dimension.
The following illustration shows a typical reservation hierarchy for an item that uses the Site, Warehouse, Inventory
status, Location, and License plate dimensions as physical inventory dimensions.
The level with the lowest value in the Reservation hierarchy level column is the least-specific level. In the illustration, this
is the site level. The higher the value, the more details are required to make a reservation on that level.
Information about on-hand inventory is stored separately for each level in the reservation hierarchy.
For detailed information about how to set up reservation hierarchies, see Set up reservation hierarchies.
0..*
Information about the hierachy WHSReservationHierarchyProvider
should be obtained through the provider WHSReservationHierarchyElement
-ReservationHierarchy
-DimensionFieldId
-ReservationHierachyLevel
The WHSReservationHierarchyProvider class provides a large number of APIs that are useful when you work with and
query the reservation hierarchy for an item.
For example, you make a reservation only on the site level. In this case, inventory blocking can be used to block a
quantity of an item on a given site.
The following illustration shows how inventory transactions look when inventory is blocked.
As the illustration shows, the reservation is physical but is made only on the site level.
As another example, you make reservations for a sales order created on site 4 and warehouse 42, which is a warehouse
that is enabled for WHS processes, and for the Available inventory status. For this example, the reservation is made only
on the inventory status level.
The following illustration shows how the inventory transactions look when reservations are made at the inventory status
level.
As the illustration shows, the reservation is physical but is made only on the inventory status level.
If a dimension is above the location level, warehouse workers cannot change this
dimension, because it is considered a strict picking requirement. For example, if the
Batch number dimension is above the location level, a worker cannot pick a batch that
is different from the one that he or she was instructed to pick.
Batch above location Process industry functionality for batches requires that the Batch number dimension be
above the Location dimension in the reservation hierarchy. When this is the case, all
functionality for First Expiry First Out (FEFO), same batch, batch disposition codes, and
batch attributes is supported.
Dimensions below WHS and warehouse workers can determine the Location dimension and the
location dimensions below it.
The Location dimension and any dimensions below it should not be entered on sales
and transfer lines if you expect work to be created. For example, if the Batch number
dimension is below the Location dimension, it should not be specified on the sales line.
Otherwise, WHS cannot create work to carry out the pick and pack operations.
The following table shows how the data might look for an item with 10 pieces available physical and 2 pieces reserved
physical on the status level.
As the table shows, reservations are tracked only on the levels that are affected by the reservation.
Because of the way that information about availability and reservations is stored, the corresponding values from the
For example, based on the data in the previous table, the available physical quantity is calculated for the following
dimensions:
• Site: Site1
• Warehouse: WH1
• Inventory status: Good
• Location: Bulk
In step 1 of the algorithm, the quantity is 12, because that is the quantity that is available on the location level. However,
in step 2, the smallest quantity from the levels above the location level is 10. Therefore, in step 3, the available physical
quantity is 10, which is the smaller of 12 and 10.
Calculations of on-hand quantity for work transactions are done differently. The on-hand quantity is determined only up
to the location level, because work affects reservations only on the location level and lower.
For example, based on the data in the previous table, the available physical quantity is calculated for work on the
following dimensions:
• Site: Site1
• Warehouse: WH1
• Inventory status: Good
• Location: Bulk
In this case, the available physical quantity is 12, because the quantity is determined only up to the location level.
Because many scenarios involve calculating on-hand quantities based on itemId, InventDim, or InventSum records for
both WHS-enabled and non-WHS-enabled items, APIs are provided to support the calculations in a seamless way.
The following example shows how to instantiate the class that can be used to calculate availability for both WHS-
enabled and non-WHS-enabled items.
availabilitySearch = InventAvailabilitySearch::construct();
availabilitySearch.setItemId(_itemId);
availabilitySearch.setInventDimCriteria(_inventDimCriteria, _inventDimCriteriaParm);
availabilitySearch.setInventSum(_inventSum);
availability = InventAvailabilityProvider::construct().find(availabilitySearch).parmInventAvailability();
this.AvailOrderedCalculated = availability.availTotal();
this.AvailPhysicalCalculated = availability.availPhysical();
this.ReservPhysical = availability.reservPhysical();
this.OrderedSum = availability.orderedSum();
The InventAvailabilityProvider class provides numerous other APIs that are used to determine the availability based on
various types of input. The existing InventOnHandQty class has been updated so that it also provides correct results for
items that are enabled for warehouse management processes.
The following illustration shows the various classes and interfaces that are used to provide and encapsulate the
calculations. Note that, for the sake of simplicity, some details have been omitted.
0..1
«interface»
InventIAvailability
0..*
WHSInventReserveQty InventSumAvailability
-InventSum
InventOnHandQty
Reservation strategies
To control the levels of the reservation hierarchy at which reservations are made, the system uses the concept of a
reservation strategy. A reservation strategy determines the outcome of a reservation, and the dimensions that are used
to make the reservation. Reservation strategies are implemented in the code and are not currently user-configurable.
Each reservation strategy determines the level that the reservation should be made on. If the dimensions that are
passed to the reservation system do not cover all the dimensions to the level defined by the strategy, the reservation
The reservation strategies that are chosen for a reservation depend on multiple factors, such as the following:
• Warehouse setup
• Order type
The following table describes the reservation strategies that the reservation system uses.
The reservation system supports multiple reservation strategies in sequential order when reservations are made. For
example, the system uses the All and All not allowed blank strategies to make reservations for transfer journals.
InventUpd_Reservation InventMovement
-inventMovement
+whsUpdateReserveMore() 0..* 0..1 +reservationHierarchyLevelStrategyList()
1 WHSReserveHierarchyLvlStratAttribute
1
WHSReservationHierarchyLevelStrategy
+getLevel()
+mustDetermineMissingDimensions()
+onlyReserveOrderedAvailable()
+onlyReservePhysicalAvailable()
WHSReservationLevelStrategyAllNoBlnk
For items that are enabled for warehouse management processes, the synchronization differs from the standard
behavior. When work must be created, the source line transactions can be reserved only until the level above the
location level. If all dimensions are synchronized, work cannot be created. Therefore, dimensions above the location
level are not synchronized for all scenarios.
If the item and warehouse are enabled for warehouse management processes, and if the issue type is a type that can
generate work, such as a sales line, only dimensions above the location level are synchronized. This means that if an
item uses batch numbers, and the batch number is placed below the location in the reservation hierarchy, the batch
number is not synchronized from receipt to issue transactions.