Формулировка проблемы: для реализации задач мобильного клиента необходимо реализовать метод API, который должен возвращать настройки процессов Системы.
Решение: необходимо реализовать следующий метод:
URL: rest/api/settings/get_processes.
Тип: GET.
Метод принимает следующие необязательные строковые параметры:
locale - локаль пользователя,
ru/en/kz (по умолчанию
ru).
В случае успешного выполнения возвращает json c
полями:
name - название процесса на языке локали,
переданной в параметре locale;
number - порядковый номер следования в
списке;
type - тип операции, один из следующих
вариантов:
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 - переназначение работ.
Для «обычных» процессов порядок следования и название берутся с настроек конфигуратора «Документооборот» -> «Настройки процессов». Специальные же процессы должны идти после «обычных», взяты из констант Системы, порядковый номер у них отсутствует, но их сортировка в API должна соответствовать таковой в действиях реестра.
В случае неуспешного выполнения возвращается json
с полями:
errorCode - код выполнения (число, отличное
от 0);
errorMessage - сообщение об ошибке.
Пример возвращаемого массива
[
{
"type": "ASSIGNMENT_ITEM",
"number": "1",
"name": "Работа"
},
{
"type": "AGREEMENT_ITEM",
"number": "2",
"name": "Согласование"
},
{
"type": "APPROVAL_ITEM",
"number": "3",
"name": "Утверждение"
},
{
"type": "ACQUAINTANCE_ITEM",
"number": "4",
"name": "Ознакомление"
},
{
"type": "RESOLUTION_ACTION",
"number": "5",
"name": "Резолюция"
},
{
"type": "SEND_DOCUMENT",
"number": "6",
"name": "Отправка документа"
},
{
"type": "BLOCKING_PROCESS",
"number": "7",
"name": "Блокирующий процесс"
},
{
"type": "REGISTRATION_ITEM",
"number": "8",
"name": "Регистрация"
},
{
"type": "ROUTE_ITEM",
"number": "9",
"name": "Маршрут..."
},
{
"type": "SEND_DOCUMENT_BY_FORM",
"number": "",
"name": "Отправка документа по форме"
},
{
"type": "POSITION_APPOINMENT_ITEM",
"number": "",
"name": "Назначение на должность"
},
{
"type": "POSITION_TRANSFER_ITEM",
"number": "",
"name": "Перевод"
},
{
"type": "POSITION_DISCHARGE_ITEM",
"number": "",
"name": "Увольнение"
},
{
"type": "COPY_TO_PR_FOLDER_ITEM",
"number": "",
"name": "Копирование в личную папку"
},
{
"type": "CALENDAR_APPOINTEMENT_ITEM",
"number": "",
"name": "Назначение календаря"
},
{
"type": "REGISTER_EVENT_ITEM",
"number": "",
"name": "Событие реестра"
},
{
"type": "QUERY_RESULT",
"number": "",
"name": "Результат запроса"
},
{
"type": "ASSIGNMENT_ITEM_BY_FORM",
"number": "",
"name": "Работа по форме"
},
{
"type": "POINTERS_INPUT",
"number": "",
"name": "Ввод значения показателя"
},
{
"type": "TIMER",
"number": "",
"name": "Таймер"
},
{
"type": "ROUTE_TEMPLATE",
"number": "",
"name": "Запуск маршрута по шаблону"
},
{
"type": "CONDITION",
"number": "",
"name": "Условный переход"
},
{
"type": "COPY_TO_CARD",
"number": "",
"name": "Копирование в карточку"
},
{
"type": "REASSIGN_WORK",
"number": "",
"name": "Переназначение работ"
}
]