Integrate an Automated Storage and Retrieval System (ASRS)

An Automated Storage and Retrieval System (ASRS) is typically used to increase the picking speed and make better use of the available storage space in the warehouse. An ASRS can be based on many types of technology. We list some technologies here. Some common examples used by customers of Ongoing includes vertical storage lifts (e.g. Kardex) and robotics storage automation (e.g. AutoStore).

Modeling the ASRS

An ASRS is a machine consisting of several internal locations, and some mechanism which can automatically transfer goods between these internal locations and some designated input/output areas. To model this in Ongoing WMS, you have three locations:

  • Lift_In: represents the input area of the ASRS.
  • Lift: represents all the internal locations inside the ASRS.
  • Lift_Out: represents the output area of the ASRS.

Integration workflow

Storage process

Here is a possible workflow for placing goods in the ASRS:

  1. Operator physically places goods in the ASRS's input area.
  2. In Ongoing WMS, the operator moves the goods to the Lift_In location.
  3. In the background, the ASRS continuously polls GetArticleItemsByQuery with the filter OnlyGetArticleItemsInLocationsToBeHandled = true, looking for article items in the Lift_In location which have not yet been handled by the ASRS.
  4. When the ASRS realizes that there are article items in Lift_In, it immediately calls ArticleItemInLocationHandled to mark them as having been handled.
  5. The ASRS can now physically move them to its internal locations.
  6. After the physical move is done, the ASRS calls MoveArticleItem on all affected article items to move them to the Lift location in Ongoing WMS.

Retrieving process

Retrieving goods from the lift works in a similar manner:

  1. When the operator prepares orders for picking, Ongoing WMS will allocate goods from the Lift location and automatically generate movement orders from location Lift to location Lift_Out.
  2. In the background, the ASRS continuously polls GetMovementArticleItemsByQuery with the filter OnlyGetMovementArticleItemsToBeHandled = true, looking for movement orders between these two locations which have not yet been handled.
  3. When it encounters such movement orders, the ASRS immediately calls MovementArticleItemHandled on the movement article item ids, to mark them as having been handled.
  4. The ASRS can now begin to move them physically to the output area.
  5. When the ASRS is done, it uses MoveArticleItem on all affected article items to move them to Lift_Out in Ongoing WMS. (Note that this call will also finish the movement orders at the same time. Thus, there is no need for a separate call to finish to the movement article items.)
  6. The operator can then physically pick the items and mark them as picked in Ongoing WMS.

Inventory process

If an item needs to be scrapped, or if the stock balance in Ongoing WMS needs to adjust up or down for any other reason, it can be convenient to perform a stock-taking directly in the user interface of the ASRS. To minimize the double work of also having to do the same process in Ongoing WMS this process can be integrated.

This process can either be started directly in the user interface of the ASRS or initiated from Ongoing WMS. The choice depends on a combination of ease of implementing and the preferred process of the warehouse.

Inventory task process started from Ongoing WMS

  1. An inventory task is created in Ongoing WMS' user interface. You may read more about how to create inventory tasks in Ongoing WMS user interface here.
  2. A call is made from the ASRS software to the API endpoint GetInventoryTaskByQuery to fetch the inventory task. Using the filters LocationId set to Lift is preferred to find inventory tasks only involving the ASRS.
  3. Optional: If inventory tasks involve article item specific information such as batches, serial numbers or expiry dates you will need to call the API endpoint GetInventoryArticleItems to fetch that information.
  4. The stock corrections are performed in the ASRS
  5. The results are sent to the InventoryTaskCount API endpoint. This is per article and can either be done continuously after each count or in a batch job at the end of a finished inventory task.

Start the process from the ASRS without using inventory tasks

This process results in inventory adjustments in Ongoing WMS. Read more about using inventory adjustments without inventory tasks here.

  1. The stock-taking is performed in the ASRS by counting the occurrences of an article.
  2. The ASRS software sends the correct amount in the ASRS to Ongoing WMS. Depending on the data requirements one of the following methods can be used: