Команда "Container.Return" - возврат контейнера на хранение в АСК

korvin
Администратор
Сообщения: 202
Зарегистрирован: 18 ноя 2017, 15:36

Команда "Container.Return" - возврат контейнера на хранение в АСК

Сообщение korvin » 27 авг 2020, 06:38

Команда сообщает серверу, что необходимо вернуть контейнер на постоянное хранение.

Дать команду можно двумя разными способами:
  1. путем добавления записи в таблицу sarmat.command_gas;
  2. путем вызова pl-sql функции sarmat.api.Container_Return_by_ID.
Оба варианта идентичны по сути, и отличаются лишь формой.
В случае, если параметры выполнения команды заданы неверно, формируется программное исключение raise с соотв. кодом ошибки.

1. Отдача команды путем добавления записи в таблицу sarmat.command_gas
Команда отдается путем добавления записи в таблицу sarmat.command_gas.
Передаются поля:
  • Command_type_id=18
  • Container_id = ID контейнера из соответствующей таблицы Заказчика
  • Cell_ID = ID ячейки (из соотв. таблицы Заказчика) откуда нужно забрать контейнер
По ходу выполнения команды означиваются поля:
  • «State» результат выполнения команды:
    • = 0 команда в процессе добавления
    • = 1 команда принята АСК к выполнению
    • = 2 ошибка выполнения команды
    • = 3 команда начала выполняться
    • = 5 команда успешно выполнена
  • в поле «cell_out_name» наименование той ячейки, в которую будет помещен контейнер на хранение. Может заполниться не сразу после добавления команды, а через какое-то время.
  • в поле «zone_letter» (символьное) заполняется ABC-зона, куда будет помещен товар на постоянное хранение. Поле заполняется по времени одновременно с «cell_out_name».

Чтобы узнать ID, присваиваемое сервером команде, используйте конструкцию 'returning'. Пример добавления команды для возврата контейнера в АСК:

Код: Выделить всё

insert into sarmat.command_gas (command_type_id,container_id ,cell_id)
values(18,4429407442,106704) returning ID into :CMDID;


2. Отдача команды путем вызова pl-sql функции из пакета sarmat.api
Чтобы дать команду на возврат контейнера, используйте pl-sql функцию sarmat.api.Container_Return_by_ID со следующими параметрами:
  • container_id = ID возвращаемого контейнера в базе Заказчика;
  • cell_id = ID ячейки (из соотв. таблицы Заказчика) откуда забирать контейнер
Пример вызова:

Код: Выделить всё

declare
  cmd_id number;
begin
  cmd_id:= sarmat.api.Container_Return_by_ID(4429407442,106704);
end;
/

Вернуться в «АСК Гамма»