Формулировка проблемы: необходимо реализовать API-метод, позволяющий возвращать описание экрана для запуска маршрута реестра.
Решение: необходимо реализовать следующий метод:
URL метода: rest/api/registry/route.
Тип запроса: GET.
Метод принимает следующие строковые параметры:
registryID - UUID реестра
(обяз.);
type - тип маршрута реестра, один из
вариантов:
ACTIVATE - маршрут активации элемента;
CHANGE - маршрут изменения элемента;
DELETE - маршрут удаления элемента;
locale - локаль пользователя,
ru/en/kz (не обяз., по умолчанию
ru).
Альтернативные потоки событий
Альтернативный поток №1. Параметр registryID
не передан, либо он пустой. Сервер возвращает ошибку:
Не передан параметр registryID
действие не осуществляется;
Альтернативный поток №2. Передан некорректный (несуществующий)
параметр registryID. Сервер возвращает
ошибку:
Передан некорректный параметр registryID
действие не осуществляется.
Альтернативный поток №3. Параметр type не
передан, либо он пустой. Сервер возвращает ошибку:
Не передан параметр type
действие не осуществляется;
Альтернативный поток №4. Передан некорректный (несуществующий)
параметр type. Сервер возвращает ошибку:
Передан некорректный параметр type
действие не осуществляется.
В случае успешного выполнения и наличия выбранного типа события
возвращается json c полями:
closeAfterActivation - закрывать ли документ
после отправки на активацию;
before - описание предварительных этапов;
action - описание действий;
after - описание последующих этапов.
Каждый из полей before /
action / after, в свою
очередь, содержит json c полями:
showOnSave - значение флажка «Отображать при
сохранении» (true/false);
routeID - UUID данной
части маршрута;
items - описание этапов данной части
маршрута:
itemID - UUID этапа;
code - код этапа при наличии, либо пусто;
users - описание подэтапов данного этапа:
name - название подэтапа;
itemID - UUID
подэтапа;
typeID - тип операции, один из
следующих вариантов:
ASSIGNMENT_ITEM - работа;
AGREEMENT_ITEM - согласование;
APPROVAL_ITEM - утверждение;
ACQUAINTANCE_ITEM - ознакомление;
RESOLUTION_ACTION - резолюция;
SEND_DOCUMENT - отправка
документа;
BLOCKING_PROCESS - блокирующий
процесс;
REGISTRATION_ITEM - регистрация;
ROUTE_ITEM - маршрут;
SEND_DOCUMENT_BY_FORM - отправка
документа по форме;
POSITION_APPOINMENT_ITEM -
назначение на должность;
POSITION_TRANSFER_ITEM - перевод;
POSITION_DISCHARGE_ITEM -
увольнение;
COPY_TO_PR_FOLDER_ITEM -
копирование в личную папку;
CALENDAR_APPOINTEMENT_ITEM -
назначение календаря;
REGISTER_EVENT_ITEM - событие
реестра;
QUERY_RESULT - результат запроса;
COMMON_PROCESS_BY_FORM - работа
по форме;
POINTERS_INPUT - ввод значения
показателя;
TIMER - таймер;
ROUTE_TEMPLATE - запуск маршрута
по шаблону;
CONDITION - условный переход;
COPY_TO_CARD - копирование в
карточку;
REASSIGN_WORK - переназначение работ;
routeID - UUID
маршрута (только для типа операции
ROUTE_ITEM);
userID - UUID
ответственного за подэтап при наличии, либо пусто;
userName - ответственный за подэтап
при наличии, либо пусто;
length - значение длительности
подэтапа;
lengthType - тип длительности, один
из следующих вариантов:
HOURS - длительность в рабочих
часах;
DAYS - длительность в рабочих
днях;
workloadValue - значение нагрузки
подэтапа;
workLoadType - тип нагрузки, один из
следующих вариантов:
PERCENT - % рабочего времени;
HOURS_A_DAY - количество часов в
день;
HOURS - общее количество рабочих
часов;
DAYS - общее количество рабочих
дней;
returnNumber - номер этапа возврата
при наличии, либо пусто;
completionFormID -
UUID формы завершения при наличии,
либо пусто.
В случае отсутствия выбранного типа события возвращается
json с полями:
errorCode - код выполнения (число, отличное
от 0);
errorMessage - «Ошибка получения событий
реестра».
Пример возвращаемых массивов
событие имеется:
{
"closeAfterActivation": "false",
"before": {
"showOnSave": "true",
"routeID": "cf9f8a9a-1ccc-4327-b829-a71e472d393e",
"items": [
{
"itemID": "7b097e72-e303-487f-83a1-cb76397abd57",
"code": "",
"users": [
{
"name": "Работа 1",
"itemID": "7b097e72-e303-487f-83a1-cb76397abd57",
"typeID": "ASSIGNMENT_ITEM",
"userID": "f9b0b304-c856-4bcf-8615-e13cded16a14",
"userName": "Андреев И.В.",
"length": "2.0",
"lengthType": "DAYS",
"workloadValue": "2.0",
"workLoadType": "HOURS",
"returnNumber": "",
"completionFormID": ""
},
{
"name": "Работа 2",
"itemID": "7b097e72-e303-487f-83a1-cb76397abd57",
"typeID": "ASSIGNMENT_ITEM",
"userID": "",
"userName": "",
"length": "8.0",
"lengthType": "HOURS",
"workloadValue": "20.0",
"workLoadType": "PERCENT",
"returnNumber": "",
"completionFormID": "179bda2e-6d55-4ed5-b1be-890ffad280ba"
}
]
},
{
"itemID": "dc890ecf-e340-4ada-b7e6-d6541486a599",
"code": "",
"users": [
{
"name": "Прошу согласовать",
"itemID": "dc890ecf-e340-4ada-b7e6-d6541486a599",
"typeID": "AGREEMENT_ITEM",
"userID": "",
"userName": "",
"length": "1.0",
"lengthType": "DAYS",
"workloadValue": "1.0",
"workLoadType": "DAYS",
"returnNumber": "",
"completionFormID": ""
}
]
}
]
},
"action": {
"showOnSave": "false",
"routeID": "22cc3118-3bcd-4543-98b4-a30982ba5c2a",
"items": [
{
"itemID": "414acd59-aaf8-4202-8c00-b39e1fe73bbc",
"code": "",
"users": [
{
"name": "Назначение на должность",
"itemID": "414acd59-aaf8-4202-8c00-b39e1fe73bbc",
"typeID": "POSITION_APPOINMENT_ITEM",
"userID": "",
"userName": "",
"length": "8.0",
"lengthType": "HOURS",
"workloadValue": "20.0",
"workLoadType": "PERCENT",
"returnNumber": "1",
"completionFormID": ""
}
]
},
{
"itemID": "2d9a641d-178c-4b05-b2f4-a231958718fd",
"code": "",
"users": [
{
"name": "Копировать в Папка",
"itemID": "2d9a641d-178c-4b05-b2f4-a231958718fd",
"typeID": "COPY_TO_PR_FOLDER_ITEM",
"userID": "",
"userName": "",
"length": "8.0",
"lengthType": "HOURS",
"workloadValue": "20.0",
"workLoadType": "PERCENT",
"returnNumber": "",
"completionFormID": ""
}
]
}
]
},
"after": {
"showOnSave": "false",
"routeID": "",
"items": []
}
}
событие отсутствует:
{"errorCode" : "13", "errorMessage" : "Ошибка получения событий реестра"}