InventAvailabilitySearch availabilitySearch; InventIAvailability availability; 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.
InventAvailabilityByUnit
InventAvailabilityProvider
InventAvailabilitySearch
-InventIAvailabilty +find() : InventAvailabilityByUnit 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 7
Reservations in Warehouse management White Paper