API обработчика ошибок роботов

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

API обработчика ошибок роботов

Сообщение korvin » 04 сен 2020, 07:18

Особенности API:
  • Чтобы получить список роботов, которые ожиидают решения проблемы, воспользуйтесь специальной view:

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

    select * from sarmat.robot_problem_resolve

    Со столбцами:
    • ID = ID робота
    • Repository_part_id = ID подсклада
    • Name = название робота
    • XML_Cases = строка XML с вариантами решения проблемы в виде: <Case id=":ID" name=":Name" question=":Question"/> где:
      • :ID - ID решения проблемы;
      • :Name - текстовое описание сути решения проблемы;
      • :Question - опциональное поле (может и не быть). Если есть, то это текст запроса дополнительного обязательного параметра для решения проблемы (например, ШК контейнера)
      Пример XML-строки:

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

      <RPRW>
        <Case id="5" name="Повторить еще раз команду"/>
        <Case id="14" name="Пометить ячейку ошибочной и перенаправить контейнер в другую ячейку"/>
        <Case id="15" name="Указать какой контейнер находится в ячейке и перенаправить текущий контейнер в другую ячейку" question="Укажите ШК контейнера, который ошибочно находится в целевой ячейке"/>
      </RPRW>
  • Чтобы решить проблему одним из предложенных способов, воспользуйтесь API_процедурой sarmat.api.Robot_Problem_Resolve(rid_ number, problem_resolve_id_ number, add_par_ varchar2);
    Где:
    • rid_ - ID робота;
    • problem_resolve_id_ - ID выбранного типа решения проблемы;
    • add_par_ - дополнительный параметр решения проблемы (если нужен);
  • Если при вызове api-процедуры решения проблемы указаны неверные параметры, то сформируется Raise c соотв. кодом ошибки.

ВАЖНО!!!
Решение проблемы возможно только для робота, находящегося в состоянии "READY".
Если же робот находится в ошибке, то решение проблем для него невозможно.
Посмотреть список роботов, находящихся в ошибке, можно через VIEW sarmat.robot_in_error:

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

select * from sarmat.robot_in_error

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