Процедура резервирования позволяет зафиксировать определенное количество (объем, вес) товара в пользу некоего документа, операции или иного объекта учета. Так как в системе управления складом учет остатков имеет довольно серьезную степень детализации, включая информацию о местоположении груза, резервировать товар сразу с учетом всего объема деталей является не совсем корректным.
Начнем с того, что в систему управления складом поступает документ, на основании которого мы должны выполнить резервирование. Допустим, это будет заказ клиента на отгрузку определенного количества товара. Сначала мы должны убедиться, что указанное количество есть на складе, иначе нет никакого смысла отправлять этот документ в работу. Именно этот вариант резервирования, который устанавливает резерв на уровне товара и основных параметров учета, часто называется «резерв верхнего уровня». Он обычно выполняется по следующим параметрам:
- Товар (материал)
- Склад (если система обслуживает несколько физических складов)
- Владелец запаса (поклажедатель)
- Вид / категория запаса (свободно используемый, подозрение на брак, карантин, уцененный и т.п.)
- Номер или код партии (возможно, составной атрибут)
Перечислять список можно сколь угодно долго, ведь развитые системы управления могут учитывать множество параметров учета запаса и даже расширять этот перечень без необходимости программирования.
Как видно, резерв верхнего уровня создается под документ, так как документ – это самый верхний (укрупненный) уровень детализации в системе управления складом, которой приходится работать на уровне атомарных операций. Но именно для выполнения атомарных операций требуется создание резервов и на «нижнем» уровне, который включает в себя идентификатор ячейки и груза. Дело в том, что на один и тот же груз могут существовать несколько заданий, и нельзя допустить, чтобы в одно место были направлены два сотрудника, один из которых вдруг на подходе к ячейке выяснит, что для исполнения задания товара там явно недостаточно. Причем, некоторые системы накладывают резерв на уровне зоны склада, выстраивая задания в реальном времени, и именно у таких систем возможны вышеуказанные конфликты.
Естественно, резерв верхнего уровня должен учитывать резерв нижнего уровня, поэтому два резерва редко сосуществуют – чаще происходит их преобразование с одного уровня в другой. Именно в рамках этого преобразования WMS система должна определить, в каких зонах склада какие именно операции потребуется выполнить.