Формулировка проблемы: необходимо доработать
метод API startRoute
таким образом, чтобы можно
было выполнять действия не только с работами, но и с документом, не
содержащем ни одной работы.
Решение: в методе
start_route
, отправляющему работу по маршруту
(перепоручение, согласование, ознакомление или утверждение), к
текущим параметрам необходимо добавить новый
documentID
.
Таким образом, используя данный метод можно будет отправить как
работу, так и документ без работ по маршруту. URL
метода: rest/api/workflow/work/start_route
. Типа
запроса: POST
. Кодировка:
UTF8
.
Метод принимает следующие строковые параметры:
workID
- uuid родительской работы, если по
маршруту отправляется работа;
documentID
- uuid документа, если по маршруту
отправляется документ;
Примечание: один из параметров
workID
/ documentID
должен
быть обязательно.
name
- название работы (обяз.);
userID
- uuid ответственного (обяз. для
включенного флажка «Ответственный»);
resUserID
- список uuid исполнителей (обяз.
для выключенного флажка «Ответственный»);
Примечание: один из параметров
userID
/ resUserID
должен быть
обязательно.
finishDate
- дата завершения работ по
маршруту в формате yyyy-MM-dd HH:mm:ss
(обяз.);
type
- тип операции, одно из значений
(обяз.):
0 - согласование;
1 - утверждение;
2 - ознакомление;
3 - перепоручение;
completionFormID
- uuid формы завершения,
имеет смысл только для типа операции 3 (не обяз., по умолчанию
«Нет»);
locale
- локаль пользователя,
ru/en/kz
(не обяз., по умолчанию
ru
).
Альтернативные потоки событий:
Если не переданы ни параметр workID
, ни
параметр documentID
, сервер вернет сообщение
«Не передан параметр workID
или
documentID
», действие не применяется.
Если передан пустой либо некорректный (в т.ч. несуществующий)
параметр workID
, сервер вернет сообщение
«Некорректный параметр workID
», действие не
применяется.
Если передан пустой либо некорректный (в т.ч. несуществующий)
параметр documentID
, сервер вернет сообщение
«Некорректный параметр documentID
», действие
не применяется.
Если переданы и параметр workID
, и параметр
documentID
, необходимо обрабатывать сначала
параметр workID
. Если он невалидный, далее
необходимо обрабатывать параметр documentID
.
Если же и он невалидный, сервер вернет сообщение «Некорректные
параметры workID
и
documentID
», действие не применяется.
Если для выбранного параметра workID
у
пользователя отсутствует доступ к работе, сервер вернет
сообщение «Пользователь {0} не может просматривать работу {1}».
Если параметр name
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
name
», действие не применяется.
Если не переданы ни параметр userID
, ни
параметр resUserID
, сервер вернет сообщение
«Не передан параметр userID
или
resUserID
», действие не применяется.
Если передан пустой либо некорректный (в т.ч. несуществующий)
uuid пользователя в параметре userID
и/или
resUserID
, сервер вернет сообщение
«Пользователь с uuid
%userUUID% не найден»,
действие не применяется.
Если параметр finishDate
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
finishDate
», действие не применяется.
Если передан невалидный (не по описанному формату) параметр
finishDate
, сервер вернет сообщение
«Некорректная продолжительность работы», действие не
применяется.
Если параметр type
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
type
», действие не применяется.
Если передан невалидный (не по описанному формату) параметр
type
, сервер вернет сообщение «Некорректный
тип операции», действие не применяется.
Если для выбранного типа операции 0, 1 или 2 родительская работа является группирующим элементом резолюции, сервер вернет сообщение «Невозможно выполнить действие для данной работы», действие не применяется.
Если для выбранного типа операции 0, 1 или 2 в ходе выполнения документа по родительской работе имеется работа на регистрации, сервер вернет сообщение «Невозможно выполнить действие для данной работы», действие не применяется.
Если для выбранного типа операции 3 в конфигураторе системы отключена возможность перепоручать работы (опция «Разрешить добавлять соисполнителей к работам, не являющихся подчиненными»), сервер вернет сообщение «Настройки не позволяют перепоручать работы», действие не применяется.
Если для любого выбранного типа операции 0-3 в справочнике
системы send_items
отсутствует такой пункт,
сервер вернет сообщение «Данное действие отсутствует в
справочнике», действие не применяется.
Если передан параметр completionFormID
для
типа операции, отличного от 3, обрабатывать данный параметр не
нужно.
Если для выбранного типа операции 3 передан пустой либо
некорректный (в т.ч. несуществующий) параметр
completionFormID
, необходимо не выдавать
ошибку и использовать значение данного параметра по умолчанию.
Если передан пустой либо некорректный (в т.ч. несуществующий)
параметр locale
, необходимо не выдавать
ошибку и использовать значение данного параметра по умолчанию.
В случае неуспешного выполнения метода сервер вернет сообщение «Ошибка при выполнении действия».
В случае успешного выполнения метода с параметром
workID
сервер вернет сообщение «Действие
выполнено», от родительской работы должны создасться дочерние работы
с указанным типом операции.
В случае успешного выполнения метода с параметром
documentID
сервер вернет сообщение «Действие
выполнено», в новой ветке хода выполнения документа должны
создасться дочерние работы с указанным типом операции.
Метод возвращает json
со следующими полями:
errorCode
- код выполнения, 0 - успешно,
иначе - ошибка;
errorMessage
- сообщение о результате
выполнения (успешном либо не успешном);
workID
- uuid родительской работы;
work
- описание родительской работы.
Последние два поля возвращаются только в случае, когда метод
выполнился успешно с параметром workID
. Таким
образом, если метод выполнился успешно с параметром
documentID
, то эти два поля не возвращаются.