- Чтобы получить список роботов, которые ожиидают решения проблемы, воспользуйтесь специальной 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 - опциональное поле (может и не быть). Если есть, то это текст запроса дополнительного обязательного параметра для решения проблемы (например, ШК контейнера)
Код: Выделить всё
<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