Location Resolution

Basics

The Location Resolution mechanism provides functionality to discover free withdrawal and storage locations in the context of a specific Booking Request. That is, this mechanism proceeds in a 3-step algorithm to discover the possible locations. The three steps can be derived from the different location levels, where tools can be stored.

These are divided into:

  • Costunit Level: When a tool inventory gets booked from a machine or maintenance costunit, or a manually managed warehouse. The same applies to a storage operation.

Figure 1: Costunit Level Location Resolution.

  • Single Location Level (only Warehouses): When a tool inventory can be booked from one single location, or a tool is stored to one single location.

Figure 2: Single Location Level Resolution.

  • Multi Location Level (only Warehouses): When tool inventories are booked from multiple locations, because one location does not feature enough inventories. The same applies to a storage operation. Please take notice that in the example in figure 3, there are three tools requested.

Figure 3: Multi Location Level Resolution.

Location Resolution Strategy

When requesting a withdrawal or storage operation for a tool, it is the responsibility of a Warehouse Management System to calculate and provide the best possible warehouse location to perform the requested operation. That is, WMS defines a strategy which uses the different location levels in a specific order to determine the best possible location(s). This strategy defines the order of location levels, that have to be taken into consideration to get the best possible location resolution.

The default order in this context is defined as follows:

  1. Costunit Level:
    1. Determine the type of the costunit. If it is Machine, Maintenance or Manually managed Warehouse, return the costunit as result. If it is Automatic Warehouse, continue with (ii).
    2. Check, if there are enough inventories / storage locations available on the costunit. If not, the location resolution was unsuccessful. If there are enough inventories / storage locations available, continue with (2).
  2. Single Location Level:
    1. Try to find one single location, which features enough inventories or storage locations to process the requested booking. If there is one available, return it as the result. If there is no single location available, continue with (3).
  3. Multi Location Level:
    1. Try to find multiple locations, that all together feature enough inventories / storage places to handle the requested booking. If there is a combination of locations available, return them as the result. Otherwise, the location resolution failed and the requested booking cannot be processed.

Implementation of the Location Resolution Strategy

The Location Resolution Strategy described in the above section can be realized very simple with the help of the Chain of Responsibility Pattern1. The idea of the pattern is to have is a lot of chain links connected together and summarized up to a chain. A request that has to be handled starts at the first chain link to get processed. If the first chain link is able to handle the request, it executes the corresponding business logic and leaves the chain with a result. The alternative, when a chain link is not able to process the request is that it redirects the request to the next chain link and hands over the responsibility to fulfill the request. For the next link, the same procedure starts. The processing end is defined by two specific cases:

  1. Success: A chain link is able to fulfill the request and return the result
  2. Failure: No chain link is able to fulfill the request, and there is no chain link remaining. The request cannot be processed.

In figure 4, the location resolution strategy is illustrated in the shape of a Chain of Responsibility. In the blue boxes, the three chain links are represented, which are connected by the redirection arrows. Whether a redirection to the successor chain link is executed, depends on the responsibility of the present handler. The entry point for a request is in the first chain link, which is shown by the black request arrow on the left.

Figure 4: The Chain of Responsibility for the Location Resolution Strategy with the possible results. Green arrows represent a positive result, whereas red arrows show an possibly unsuccessful path.

For instance, when processing a StorageRequest on a machine, the request gets initially processed by the CostunitLookupHandler. Due to the responsibility of the CostunitLookupHandler to handle machine-oriented requests, the request gets processed by the CostunitLookupHandler and no redirection takes place. When handling this request, the CostunitLookupHandler decides to return the present costunit as a possible storage location. In this context, there is no availability check in terms of free storage locations required due to the infinite storage capacity of a machine2.

1. For further details on the pattern, it is to reference on https://www.tutorialspoint.com/design_pattern/chain_of_responsibility_pattern.htm.
2. This is defined by TDM V4, where a machine costunit as well as a maintenance costunit has no maximum capacity defined.

results matching ""

    No results matching ""