Формулировка проблемы: необходимо доработать
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": [] } ] } ]