Формулировка проблемы: необходимо реализовать 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" : "Ошибка получения событий реестра"}