Формулировка проблемы: необходимо доработать
API-метод getExecutionProcess, добавив к
возвращаемым полям информацию о типах работ и маршруте выполнения.
Решение:
URL метода:
rest/api/workflow/get_execution_process
Тип запроса: GET.
Метод принимает следующие параметры:
documentID - UUID документа;
workID - UUID работы;
locale - локаль ru/en/kz,
по умолчанию ru (не обяз.);
Замечание:
Должен присутствовать один из параметров
workID, либоdocumentID, при этом обработка ситуации передачи должна остаться прежней. В связи с этим в постановке будет отсутствовать описание альтернативных потоков событий, связанных с неправильной передачей параметров.
В случае успешного выполнения возвращать json,
который содержит массив элементов хода выполения, которые имеют
следующие поля (новые добавляемые поля будут помечены
(*)):
authorID - UUID пользователя, запустившего
процесс;
authorName - имя пользователя, запустившего
процесс (не менять формат, в котором это имя выводится);
name - название элемента хода исполнения в
строковом формате;
started - стамп времени начала процесса в
формате: "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
finished - стамп времени завершения процесса
в формате: "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
comment - комментарий хода исполнения в
строковом формате;
finishedUserID - UUID пользователя,
завершившего процесс (*);
finishedUser - имя пользователя, завершившего
процесс (не менять формат, в котором это имя выводится);
responsibleUserID - UUID пользователя,
ответственного за выполнение (*);
responsibleUserName - ФИО пользователя,
ответственного за выполнение (*);
itemID - UUID процесса
(*);
code - код процесса в строковом формате
(*);
typeID - тип процесса. Допустимые варианты
описаны ниже (*);
actionID - UUID действия, создаваемого
процессом (работы, согласования, отправки документа и т.д.)
(*);
length - заданная длительность процесса
(*);
lengthType - тип длительности
(*). Один из следующих вариантов:
HOURS - длительность задана в часах;
DAYS - длительность задана в рабочих
днях;
completionFormID - UUID формы завершения
(*);
subProcesses - массив подпроцессов, который
содержит те же элементы, что и сам процесс (с добавленными
новыми полями);
Замечание:
Не нужно менять правила отображения пустых полей, которые уже существуют в данном API. Для новых добавленных полей правила отображения пустых полей должны быть такими же, что и для уже существующих (отображать значение null или пустую строку "").
Список допустимых вариантов для поля
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_TIEM - перевод;
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 - переназначение работ.
Замечание:
В случае неуспешного выполнения старые возвращаемые коды ошибки и их текст должны остаться прежними. В связи с этим в постановке отсутствует описание этого случая. Для новых возникающих ошибок необходимо добавить новые коды, но оставить текст ошибки прежним.
Пример возвращаемого массива:
[
{
"authorID": "cf9f8a9a-1ccc-4327-b829-a71e472d393e",
"authorName": "Калиев Е.Д. (+77015550077)",
"name": "Согласовано",
"started": "2015-10-13 10:37:45",
"finished": "2015-10-13 11:37:45",
"comment": "OK",
"finishedUserID": "179bda2e-6d55-4ed5-b1be-890ffad280ba",
"finishedUser": "Акбердиева И.М. (+ 7 702 560 89 89)",
"responsibleUserID": "179bda2e-6d55-4ed5-b1be-890ffad280ba",
"responsibleUserName": "Акбердиева И.М. (+ 7 702 560 89 89)",
"itemID": "7b097e72-e303-487f-83a1-cb76397abd57",
"code": "soglasovanie",
"typeID": "AGREEMENT_ITEM",
"actionID": "33397e72-e303-487f-83a1-bb12397abd57",
"length": "8.0",
"lengthType": "HOURS",
"completionFormID": "",
"subProcesses": []
},
{
"authorID": "dd7f8a9a-1ccc-4327-b829-a71e472d393e",
"authorName": "Калиев Е.Д. (+77015550077)",
"name": "На ознакомлении",
"started": "2015-10-13 11:37:45",
"finished": "",
"comment": "",
"finishedUserID": "",
"finishedUser": "",
"responsibleUserID": "aa497e72-e222-487f-83a1-cb76397abd57",
"responsibleUserName": "Колыванов И.М. (+ 7 707 565 89 89)",
"itemID": "88897e72-e303-487f-83a1-cb76397abd57",
"code": "",
"typeID": "ACQUAINTANCE_ITEM",
"actionID": "44x97e72-e303-487f-83a1-bb12397abd57",
"length": "8.0",
"lengthType": "HOURS",
"completionFormID": "",
"subProcesses": [
{
"authorID": "cf9f8a9a-1ccc-4327-b829-a71e472d393e",
"authorName": "Акбердиева И.М. (+ 7 702 560 89 89)",
"name": "Согласовано",
"started": "2015-10-13 12:37:45",
"finished": "2015-10-13 13:37:45",
"comment": "OK",
"finishedUserID": "179bda2e-6d55-4ed5-b1be-890ffad280ba",
"finishedUser": "Арыстанов И.М. (+ 7 707 565 89 89)",
"responsibleUserID": "179bda2e-6d55-4ed5-b1be-890ffad280ba",
"responsibleUserName": "Арыстанов И.М. (+ 7 707 565 89 89)",
"itemID": "99997e72-e303-487f-83a1-cb76397abd57",
"code": "soglasovanie",
"typeID": "AGREEMENT_ITEM",
"actionID": "12397e72-e303-487f-83a1-bb12397abd57",
"length": "8.0",
"lengthType": "HOURS",
"completionFormID": "",
"subProcesses": []
}
]
}
]