- command_type_id - number - код команды - константа = 51
- gate_ids - varchar2(4000) - ID шлюзов, перечисленные через запятую
- box_ids - varchar2(4000) - ID ящиков, уложенные в шлюзы, перечисленные через запятую в виде пар [ID_ящика;код его типоразмера]
- user_name - varchar2 - логин пользователя, для которого закрывается шлюз (необязательный параметр)
При добавлении команды-записи происходит проверка на корректность входных параметров команды. Если параметры команды заданы некорректно, то сразу формируется ошибка добавления raise, запись не добавляется. В raise выводится код и причина невозможности добавления записи. Причины возможные:
- указанного ID шлюза не существует
- шлюз не открыт
- ящика с указанным ID уже хранится в бункере
- недопустимый типоразмер ящика
Возвращаются параметры:
- ID - number - ID новой команды,
- State - состояние команды:
- =0-команда подана,
- =1-команда принята к рассмотрению,
- =2-ошибка выполнения команды,
- =3-команда запущена к выполнению,
- =4-команда выполнена частично, при этом в полях:
- box_ids_unwanted - varchar2 - передаются те коробки, которые не заказывались к сохранению, но почему то считались - в виде пар [id_шлюза;ID_коробки]
- box_ids_absent - varchar2 - передаются те коробки, которые не удалось считать ни в одном из шлюзов, но которые указывались как положенные в шлюз в изначальной команде
- =5 - команда успешно выполнена
- box_ids_succes - varchar2 - передаются те коробки, которые удалось считать - в виде пар [id_шлюза;ID_коробки]
Те шлюзы, в которых все ок, после успешного выполнения этой команды остаются заблокированными.
Те шлюзы, в которых нашлись нежелательные коробки, разблокируются и открываются для внесения изменений.