Дать команду можно двумя разными способами:
- путем добавления записи в таблицу sarmat.command_gas;
- путем вызова 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;
/