public class WorkFlowService
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DOCUMENT
Комментарии для документа
|
static java.lang.String |
PERSONAL
Личные комментарии
|
static java.lang.String |
WORK
Комментарии для работы
|
Constructor and Description |
---|
WorkFlowService() |
Modifier and Type | Method and Description |
---|---|
Response |
acceptWorkResult(java.lang.String workID,
java.lang.String resultID,
java.lang.String locale)
Метод подтверждает результат работы
URL rest/api/workflow/work/accept_result
Method GET |
java.lang.String |
addAttachment(java.lang.String workID,
MultipartFormDataInput input,
java.lang.String path,
java.lang.String locale)
Deprecated.
используйте StorageService#startUploadFile и createAttachment
|
java.lang.String |
addComment(java.lang.String workID,
java.lang.String commentID,
java.lang.String comment,
java.lang.String type,
java.lang.String locale)
Добавляет/изменяет комментарий к работе
URL rest/api/workflow/work/{workID}/comments/save Method POST |
java.lang.String |
createAttachment(java.lang.String workID,
java.lang.String path,
java.lang.String fileName,
java.lang.String filePath,
java.lang.String locale)
Метод добавляет вложение к работе из временного файла, загруженного на сервер с помощью API хранилища
URL work/{workID}/attachment/create
Method POST |
Response |
createWork(java.lang.String name,
java.lang.String startDate,
java.lang.String finishDate,
java.lang.String userID,
java.lang.String authorID,
java.util.List<java.lang.String> resUserID,
java.lang.String priority,
java.lang.String completionFormID,
java.lang.String completionFormCode,
boolean force,
java.lang.String moduleID,
java.lang.String comment,
java.lang.String repeat,
java.util.HashSet<java.lang.String> path,
java.lang.String locale)
Создает новую работу и возвращает полную информацию о ней
URL rest/api/workflow/work/create
POST POST Обязательные для создания работы поля, в списке ниже отмечены * |
java.lang.String |
deleteAttachment(java.lang.String nodeUUID,
java.lang.String locale)
Удаляет файл вложений к работе
URL rest/api/workflow/work/remove_file
Method GET |
java.lang.String |
deleteComment(java.lang.String commentID,
java.lang.String locale)
Удаляет комментарий
URL rest/api/workflow/work/comments/remove
Method GET Пример удаления комментария |
java.lang.String |
deleteWork(java.lang.String locale,
java.lang.String workID)
Удаляет работу
URL rest/api/workflow/work/delete
GET |
Response |
dismissTimer(java.lang.String id)
Метод API для прерывания таймера
URL: rest/api/workflow/dismiss_timer
Method POST Метод принимает следующие входные параметры: id - ид таймера В случае успешного выполнения json со следующими полями: errorCode = 0 errorMessage = Таймер прерван в случае ошибки вернет json со следующими полями errorCode = код ошибки errorMessage = сообщение Пример возвращаемого json-объекта при успешном выполнении метода: { "errorCode": 0, "errorMessage": "Таймер прерван" } Пример возвращаемого json-объекта при ошибке: { "errorCode": 0, "errorMessage": "Таймер прерван" } { "errorCode": 3, "errorMessage": "Не передан либо передан некорректный параметр id" } { "errorCode": 2, "errorMessage": "Пользователь не авторизован, или у пользователя недостаточно прав для изменения." } { "errorCode": 13, "errorMessage": "Таймер с кодом %значение% не найден. " } |
java.lang.String |
doCreateAttachment(java.lang.String workID,
java.lang.String path,
java.lang.String fileName,
java.lang.String filePath,
java.lang.String locale,
int successResult,
java.lang.String successMessage) |
Response |
finishProcess(java.lang.String procInstID,
java.lang.String signal,
java.lang.String comment,
java.lang.String rawdata,
java.lang.String signdata,
java.lang.String certificate,
java.lang.String certID,
boolean addSignature,
java.lang.String locale)
Метод завершает процесс согласования/утверждения/ознакомления
URL rest/api/workflow/finish_process
Method POST |
java.lang.String |
getAttachments(java.lang.String workID,
int count,
boolean getCounters,
java.lang.String locale)
Возвращает отсортированный в обратном порядке по дате добавления список файлов работы (из вложений и прочих)
URL rest/api/workflow/work/{workID}/last_attachments
Method GET Возвращает информацию о вложениях как список json. |
java.lang.String |
getComments(java.lang.String workID,
int start,
int count,
boolean getCounters,
java.lang.String type,
java.lang.String locale)
Возвращает комментарии к работе отсортированные в обратном порядке по дате добавления
URL rest/api/workflow/work/{workID}/comments Method GET Возвращает информацию о комментариях как список json Поля одного комментария commentID - uuid комментария comment - текст комментария author - автор author.userID - uuid автора author.name - имя автора же created - дата создания comment_icon_type - тип иконки комментария created_label - время от даты создания либо время создания type - тип, константы в arta.synergy.web.common.client.constants.CommentType is_editable - возможно ли редактирование данного комментария is_deletable - возможно ли удаление данного комментария Пример получения последних трех комментариев http://хост:порт/Synergy/rest/api/workflow/work/uuid_работы/comments? |
java.lang.String |
getCounters()
Метод возвращает информацию о счетчиках работ
URL rest/api/workflow/get_counters Method GET Метод список элементов json следующего формата: key - идентификатор фильтра, value - значение фильтра Идентификатор фильтра строится по следующему правилу для общего количества работ в фильтре: {тип фильтра}_{uuid фильтра}_{uuid объекта} для новых работ в фильтре: {тип фильтра}_{uuid фильтра}_{uuid объекта}_ Если для данного фильтра uuid фильтра или uuid объекта отсутствуют, то вместо них подставляется null Примеры Идентификатор для фильтра "На исполнении" OWN_WORKS_null_null - общее количество работ и OWN_WORKS_null_null_ - количество новых работ Если в списке будет возвращено { "key": "OWN_WORKS_null_null", "value": "198"}, { "key": "OWN_WORKS_null_null_", "value": "2"} ,
значит у пользователя На исполнении 198 работ и из них 2 новых. |
java.lang.String |
getDefaultWorkFields(java.lang.String locale)
Возвращает значения по умолчанию для создания новой работы в формате yyyy-MM-dd HH:mm
URL rest/api/workflow/work/create_defaults
Method GET |
java.lang.String |
getExecutionProcess(java.lang.String locale,
java.lang.String documentID,
java.lang.String workID)
Метод возвращает ход исполнения по документу
URL rest/api/workflow/get_execution_process Method GET |
java.lang.String |
getFilters(java.lang.String filterType,
java.lang.String parentID,
java.lang.String parentObjectID,
boolean getCounters,
java.lang.String locale,
java.lang.String userID)
Возвращает список фильтров пользователя.
|
Response |
getFinishDate(java.lang.String startDate,
java.lang.String duration)
Метод возвращает дату завершения по дате начала и длительности
URL: rest/api/workflow/get_finish_date
Тип: GET
|
Response |
getFormForCompletionResult(java.lang.String formUUID,
java.lang.String formCode,
java.lang.String workID,
java.lang.String locale)
Создает форму для создания результата по форме завершения "форма"
URL rest/api/workflow/work/get_form_for_result Method GET |
java.lang.String |
getFullAttachments(java.lang.String workID,
java.lang.String locale)
Возвращает все файлы данной работы по двум группам - вложения и прочие
URL rest/api/workflow/work/{workID}/attachments
Method GET Возвращает информацию о файлах как объект json: [{attachments: [..list of attachments ..]}, {work_files: [..list of work files ..]}] |
java.lang.String |
getHost() |
java.lang.String |
getProcessFinishInfo(java.lang.String workID,
java.lang.String locale)
Возвращает информацию, необходимую для построения диалога завершения работы по
согласованию/утверждению/ознакомлению
URL rest/api/workflow/process_info
GET Поля для описания экрана завершения работы: need_comment_input - необходимо ли наличие поля ввода для комментария need_enter_positive_comment - обязателен ли ввод комментария при согласии/утверждении need_enter_negative_comment - обязателен ли ввод комментария при отказе rawdata - Base64 закодированная строка для идентификации подписываемых данных demandSign - требовать подписи Для каждой кнопки: label - Название кнопки signal - результат завершения color - цвет (значение из ActionColor) |
Route |
getResponsibleRoute(java.lang.String userID,
java.lang.String name,
java.util.Date finishDate,
java.lang.String completionFormCode) |
java.lang.String |
getSendWorkInfo(java.lang.String workID,
java.lang.String documentID,
java.lang.String actionType,
java.lang.String operationType,
java.lang.String locale)
Возвращает информацию необходимую для построения диалога отправки работы на согласование/утверждение/ознакомление/перепоручение/передача
URL rest/api/workflow/send_work_info
GET Поля для описания экрана завершения работы: name - название отправляемой работы finish_date - дата завершения отправляемой работы по-умолчанию (в формате yyyy-MM-dd HH:mm:ss) button_name - название кнопки действия screen_name - название экрана button_color - цвет кнопки действия (константа из ActionColor) show_all - true - отображать всех пользователей, false - только подчиненных |
Response |
getSubWorks(java.lang.String workID,
int startRecord,
int recordsCount,
java.lang.String locale)
Возвращает работы дочерние для данной работы
URL rest/api/workflow/subworks/{workID}
GET Возвращает список дочерних работ |
java.lang.String |
getUserID() |
java.lang.String |
getWorkActions(java.lang.String workID,
java.lang.String locale)
Deprecated.
этот метод считается устаревшим, используйте rest/api/workflow/work_actions
|
java.lang.String |
getWorkCompletionData(java.lang.String workID,
java.lang.String locale)
Метод возвращает информацию о результате завершения данной работы и список
подтвержденных результатов дочерних работ
URL rest/api/workflow/work/get_completion_data
Method GET |
java.lang.String |
getWorkCompletionResult(java.lang.String workID,
java.lang.String locale)
Метод возвращает информацию о результате завершения данной работы
URL rest/api/workflow/work/completion_result
Method GET |
java.lang.String |
getWorkDialogs(java.lang.String uuid,
java.lang.String type,
java.lang.String locale)
Метод возвращает описание диалога по его uuid
URL: rest/api/workflow/get_dialog_info
Тип: GET
|
java.lang.String |
getWorkDocumentInfo(java.lang.String workID,
java.lang.String locale)
Возвращает информацию о документе, соответствующем данной работе
URL rest/api/workflow/work/{workID}/document
Method GET |
java.lang.String |
getWorkItems(java.lang.String workID,
java.lang.String locale)
Метод возвращает набор действий, которые может совершить авторизованный пользователь над работой
URL: rest/api/workflow/work_actions
Тип: GET
Каждое действие характеризуется следующими полями: action - идентификатор действия, значение из WorkActionType operation - идентификатор операции, значение из WorkActionSubType (может отсутствовать) label - название действия color - идентификатор цвета, значение из ActionColor |
Response |
getWorks(int startRecord,
int recordsCount,
java.lang.String search,
java.lang.String filterType,
java.lang.String filterID,
java.lang.String objectID,
java.lang.String sortColumn,
boolean isAscSort,
boolean hasExtSearchParams,
int periodType,
java.lang.String extStartDate,
java.lang.String extFinishDate,
boolean extShowCompleted,
boolean extShowDeleted,
int extDateSearchType,
java.lang.String userID,
java.lang.String locale)
Возвращает список работ пользователя userID.
|
Response |
getWorksByFilterCode(int startRecord,
int recordsCount,
java.lang.String search,
java.lang.String filterType,
java.lang.String filterCode,
java.lang.String sortColumn,
boolean isAscSort,
boolean hasExtSearchParams,
int periodType,
java.lang.String extStartDate,
java.lang.String extFinishDate,
boolean extShowCompleted,
boolean extShowDeleted,
int extDateSearchType,
java.lang.String userID,
java.lang.String locale)
Возвращает список работ пользователя userID с общим числом работ, удовлетворяющих условиям поиска
URL rest/api/workflow/works/list_ext
Method GET |
Response |
getWorksById(java.util.List<java.lang.String> workID,
java.lang.String locale)
Возвращает список работ по их идентификаторам
URL rest/api/workflow/works_by_id
Method GET |
Response |
getWorkTime(java.lang.String startDate,
java.lang.String finishDate)
Метод возвращает время в секундах от указанного времени `startDate` и `finishDate` в рабочих часах.
|
java.lang.String |
markWorkSeen(java.lang.String workID)
Метод отмечает данную работу как "просмотренную"
URL rest/api/workflow/work/set_seen
Method GET |
Response |
rejectWorkResult(java.lang.String workID,
java.lang.String resultID,
java.lang.String startDate,
java.lang.String finishDate,
int progress,
java.lang.String comment,
java.lang.String locale)
Метод отклоняет результат работы
URL rest/api/workflow/work/reject_result
Method POST |
java.lang.String |
resolutionInfo(java.lang.String workID,
java.lang.String locale)
Метод возвращает описание экрана для завершения процесса резолюции
URL: rest/api/workflow/screen_resolution_info
Тип: GET
|
Response |
saveWork(java.lang.String name,
java.lang.String startDate,
java.lang.String userID,
java.lang.String finishDate,
java.lang.String priority,
java.lang.String completionFormID,
java.lang.String completionFormCode,
java.lang.String actionID,
java.lang.String repeat,
java.lang.String locale)
Изменяет работу и возвращает информацию об измененной работе
URL rest/api/workflow/work/save
POST |
Response |
setStartdate(java.lang.String id,
java.lang.String startdate)
Метод API для обновления таймера
URL: rest/api/workflow/set_startdate
Method POST Метод принимает следующие входные параметры: id - ид таймера startdate - Дата и время запуска таймера в формате yyyy-MM-dd либо yyyy-MM-dd HH:mm:00 В случае успешного выполнения json со следующими полями: errorCode = 0 errorMessage = Таймер обновлен в случае ошибки вернет json со следующими полями errorCode = код ошибки errorMessage = сообщение Пример возвращаемого json-объекта при успешном выполнении метода: { "errorCode": 0, "errorMessage": "Таймер обновлен" } Пример возвращаемого json-объекта при ошибке: { "errorCode": 3, "errorMessage": "Не передан либо передан некорректный параметр id" } { "errorCode": 2, "errorMessage": "Пользователь не авторизован, или у пользователя недостаточно прав для изменения." } { "errorCode": 13, "errorMessage": "Таймер с кодом %значение% не найден. " } { "errorCode": 666, "errorMessage": "Таймер ранее запущен" } { "errorCode": 4, "errorMessage": "Некорректно указана дата startdate" } |
Response |
setWorkProgress(java.lang.String workID,
int progress,
java.lang.String locale)
Изменяет прогресс работы
URL rest/api/workflow/work/set_progress
Method GET |
Response |
setWorkResponsibles(java.lang.String locale,
ActionResponsibles responsibles)
Метод API указывает исполнителей для работ, где указана должность
URL: rest/api/workflow/work/set_responsibles
Method POST Метод принимает следующие входные параметры (json): workID - ид работы responsibles - массив uuid пользователей должности, которым будет назначена работа; Пример передаваемого запроса: { "workID": "6e90e0a1-efe4-4d78-93e5-4540315560e0", "responsibles":["02a5723f-811d-4f62-94c9-ccdf2d74cd1e"] } В случае успешного выполнения json со следующими полями: errorCode = 0 errorMessage = Данные сохранены в случае ошибки вернет json со следующими полями errorCode = код ошибки errorMessage = сообщение Пример возвращаемого json-объекта при успешном выполнении метода: { "errorCode": 0, "errorMessage": "Данные сохранены" } |
Response |
setWorkResult(java.lang.String workID,
java.lang.String completionForm,
java.lang.String locale) |
Response |
setWorkState(java.lang.String workID,
int stateID,
java.lang.String locale)
URL rest/api/workflow/work/set_state
Method GET |
Response |
startRoute(java.lang.String finishDate,
java.util.List<java.lang.String> resUserID,
java.lang.String userID,
java.lang.Integer type,
java.lang.String name,
java.lang.String completionFormID,
java.lang.String completionFormCode,
java.lang.String workID,
java.lang.String documentID,
java.lang.String locale)
Отправляет работу по маршруту (перепоручение, согласование, ознакомление или утверждение)
URL rest/api/workflow/work/start_route Method POST |
java.lang.String |
transferWork(java.lang.String workID,
java.lang.String name,
java.lang.String userID,
java.lang.String locale)
Метод выполняет передачу работы другому пользователю
URL rest/api/workflow/work/transfer Method POST |
public static final java.lang.String WORK
public static final java.lang.String DOCUMENT
public static final java.lang.String PERSONAL
public Response getWorks(int startRecord, int recordsCount, java.lang.String search, java.lang.String filterType, java.lang.String filterID, java.lang.String objectID, java.lang.String sortColumn, boolean isAscSort, boolean hasExtSearchParams, int periodType, java.lang.String extStartDate, java.lang.String extFinishDate, boolean extShowCompleted, boolean extShowDeleted, int extDateSearchType, java.lang.String userID, java.lang.String locale)
Возвращает список работ пользователя userID.
URL rest/api/workflow/works/list/{userID}startRecord
- номер записи начала спискаrecordsCount
- максимальное количество записей в списке, 0 - если необходимо получить все записи спискаsearch
- строка фильтраfilterType
- одно из значений перечисления WorkFilterType,
если filterType DELEGATED, то userID должен быть равным objectID,
если они не равны, то userID заменяется на objectID, поскольку objectID - UUID пользователя,
чью работы просматриваются в автофильтре делегированные
На исполнении
OWN_WORKS,
На контроле
ON_CONTROL,
протокольные
PROTOCOL_WORKS,
проектные
PROJECT_WORKS,
автофильтр делегированные
DELEGATED,
группы
GROUPS;
filterID
- UUID пользовательского фильтраobjectID
- UUID объекта фильтра (например проекта, группы работ, пользователя)sortColumn
- название столбца сортировкиisAscSort
- true - прямой порядок сортировки, false - обратныйhasExtSearchParams
- заданы ли параметры расширенного фильтра, нижеследующие переменные, начинающиеся с ext
имеют смысл, только если значение данной переменной trueperiodType
- целочисленная переменная, приминающая следующие значения
Текущие мероприятия
SEARCH_TYPE_CURRENT = 0;
Мероприятия за произвольный промежуток времени
SEARCH_TYPE_CUSTOM = 1;
Будущая неделя (+7 дней от текущей даты)
NEAREST_WEEK_ACTIONS = 2;
Будущий месяц (+1 месяц от текущей даты)
NEAREST_MONTH_ACTIONS = 3;
Будущий квартал (+3 месяца от текущей даты)
NEAREST_QUARTER_ACTIONS = 4;
Прошедшая неделя (-7 дней от текущей даты)
LATEST_WEEK_ACTIONS = 7;
Прошедший месяц (-1 месяц от текущей даты)
LATEST_MONTH_ACTIONS = 8;
Прошедший квартал (-3 месяца от текущей даты)
LATEST_QUARTER_ACTIONS = 9;
Сегодня
NEAREST_DAY_ACTIONS = 6;
extStartDate
- дата начала поискового периода, имеет смысл если значение periodType=SEARCH_TYPE_CUSTOM, format dd-MM-yyyyextFinishDate
- дата начала поискового периода, имеет смысл если значение periodType=SEARCH_TYPE_CUSTOM, format dd-MM-yyyyextShowCompleted
- true - отображать завершенные, false - не отображатьextShowDeleted
- true - отображать удаленные, false - не отображатьextDateSearchType
- целочисленная переменная, принимающая следующие значения
Поиск по всем датам
SEARCH_DATES_ALL = 0;
Поиск по дате завершения
SEARCH_DATES_STARTDATE = 1;
Поиск по дате начала
SEARCH_DATES_FINISHDATE = 2;
Поиск по дате фактического завершения
SEARCH_DATES_FINISHED = 3;
userID
- UUID пользователяlocale
- локаль пользователяЕсли авторизованный пользователь не имеет право видеть список работ userID, то вернется ошибка
{ "errorCode":2, "errorMessage":"У вас нет доступа к списку работ указанного пользователя" }
arta.synergy.web.common.client.data.actions.filter.WorkFilterType
,
arta.synergy.web.common.client.constants.SearchConstants
,
arta.synergy.web.common.client.data.actions.ActionSearchParams
public Response getWorksByFilterCode(int startRecord, int recordsCount, java.lang.String search, java.lang.String filterType, java.lang.String filterCode, java.lang.String sortColumn, boolean isAscSort, boolean hasExtSearchParams, int periodType, java.lang.String extStartDate, java.lang.String extFinishDate, boolean extShowCompleted, boolean extShowDeleted, int extDateSearchType, java.lang.String userID, java.lang.String locale)
Возвращает список работ пользователя userID с общим числом работ, удовлетворяющих условиям поиска
URL rest/api/workflow/works/list_extuserID
- UUID пользователяstartRecord
- номер записи начала спискаrecordsCount
- максимальное количество записей в списке, 0 - если необходимо получить все записи спискаsearch
- строка фильтраfilterType
- одно из значений перечисления WorkFilterType
На исполнении
OWN_WORKS,
На контроле
ON_CONTROL,
протокольные
PROTOCOL_WORKS,
проектные
PROJECT_WORKS,
автофильтр делегированные
DELEGATED,
группы
GROUPS;
filterCode
- код централизованного фильтраsortColumn
- название столбца сортировкиisAscSort
- true - прямой порядок сортировки, false - обратныйhasExtSearchParams
- заданы ли параметры расширенного фильтра, нижеследующие переменные, начинающиеся с ext
имеют смысл, только если значение данной переменной trueperiodType
- целочисленная переменная, приминающая следующие значения
Текущие мероприятия
SEARCH_TYPE_CURRENT = 0;
Мероприятия за произвольный промежуток времени
SEARCH_TYPE_CUSTOM = 1;
Будущая неделя (+7 дней от текущей даты)
NEAREST_WEEK_ACTIONS = 2;
Будущий месяц (+1 месяц от текущей даты)
NEAREST_MONTH_ACTIONS = 3;
Будущий квартал (+3 месяца от текущей даты)
NEAREST_QUARTER_ACTIONS = 4;
Прошедшая неделя (-7 дней от текущей даты)
LATEST_WEEK_ACTIONS = 7;
Прошедший месяц (-1 месяц от текущей даты)
LATEST_MONTH_ACTIONS = 8;
Прошедший квартал (-3 месяца от текущей даты)
LATEST_QUARTER_ACTIONS = 9;
Сегодня
NEAREST_DAY_ACTIONS = 6;
extStartDate
- дата начала поискового периода, имеет смысл если значение periodType=SEARCH_TYPE_CUSTOM, format dd-MM-yyyyextFinishDate
- дата начала поискового периода, имеет смысл если значение periodType=SEARCH_TYPE_CUSTOM, format dd-MM-yyyyextShowCompleted
- true - отображать завершенные, false - не отображатьextShowDeleted
- true - отображать удаленные, false - не отображатьextDateSearchType
- целочисленная переменная, принимающая следующие значения
Поиск по всем датам
SEARCH_DATES_ALL = 0;
Поиск по дате завершения
SEARCH_DATES_STARTDATE = 1;
Поиск по дате начала
SEARCH_DATES_FINISHDATE = 2;
Поиск по дате фактического завершения
SEARCH_DATES_FINISHED = 3;
locale
- локаль пользователяЕсли авторизованный пользователь не имеет право видеть список работ userID, то вернется ошибка
{ "errorCode":2, "errorMessage":"У вас нет доступа к списку работ указанного пользователя" }
arta.synergy.web.common.client.data.actions.filter.WorkFilterType
,
arta.synergy.web.common.client.constants.SearchConstants
,
arta.synergy.web.common.client.data.actions.ActionSearchParams
public Response getWorksById(java.util.List<java.lang.String> workID, java.lang.String locale)
Возвращает список работ по их идентификаторам
URL rest/api/workflow/works_by_idworkID
- идентификатор работы (параметр может передан несколько раз)locale
- локаль пользователяpublic java.lang.String getFilters(java.lang.String filterType, java.lang.String parentID, java.lang.String parentObjectID, boolean getCounters, java.lang.String locale, java.lang.String userID)
Возвращает список фильтров пользователя.
URL rest/api/workflow/works/filters/{userID}rest/api/workflow/works/filters/{userID}
{"name": "На исполнении", "filterType":"OWN_WORKS"}
,
rest/api/workflow/works/filters/{userID}?filterType=OWN_WORKS
{"filterID": "filterUUID-1", "name": "На подпись", "filterType":"OWN_WORKS"}
rest/api/workflow/works/filters/{userID}?filterType=OWN_WORKS&parentID=filterUUID-1
Допустим у нас есть фильтр верхнего уровня, который может содержать динамически формируемые подфильтры
и тип этого фильтра PROJECT_WORKS. Для получения его подфильтров необходимо отправить запрос:
rest/api/workflow/works/filters/{userID}?filterType=PROJECT_WORKS
Например, среди возвращенных фильтров был следующий
{"objectID": "b2b78b71-2419-4ef1-a834-a74125dfbdf5", "name": "План моих работ"}
Тогда получение его дочерних фильтров будет выглядеть:
rest/api/workflow/works/filters/{userID}?filterType=PROJECT_WORKS&parentObjectID=b2b78b71-2419-4ef1-a834-a74125dfbdf5
И в результате получим ответ:
{"parentObjectID": "b2b78b71-2419-4ef1-a834-a74125dfbdf5", "filterID": "ee230d4f-6def-4d1c-9127-092a0963d029", "name": "от Руководителя"}
Для того чтобы получить дочерние элементы этого фильтра необходимо отправить запрос:
rest/api/workflow/works/filters/{userID}filterType=PROJECT_WORKS&parentID=ee230d4f-6def-4d1c-9127-092a0963d029
filterType
- тип фильтра,parentID
- UUID родительского фильтраparentObjectID
- UUID объекта родительского фильтраlocale
- локаль пользователяuserID
- UUID пользователяWorkUtilWrapper#getFilterJson(arta.synergy.web.common.client.data.actions.filter.Filter, arta.synergy.web.common.client.data.actions.WorkCounters)
,
arta.synergy.ejb.works
public java.lang.String getComments(java.lang.String workID, int start, int count, boolean getCounters, java.lang.String type, java.lang.String locale)
Возвращает комментарии к работе отсортированные в обратном порядке по дате добавления
workID
- uuid работыstart
- номер первой записи (отсчет с 0)count
- количество записей в возвращаемом спискеtype
- для чего получаем комментарии (WORK - работа, DOCUMENT - документ принадлежащий работе, PERSONAL - личные комментарии)getCounters
- true - получить количество комментариев, иначе - falselocale
- локаль пользователяarta.synergy.web.common.client.constants.CommentType
public java.lang.String addComment(java.lang.String workID, java.lang.String commentID, java.lang.String comment, java.lang.String type, java.lang.String locale)
Добавляет/изменяет комментарий к работе
workID
- uuid работыcommentID
- uuid комментария, для добавления нового комментария - не передаватьcomment
- текст комментария (передается как параметр формы)locale
- локаль пользователяtype
- если к работе добавляется личный комментарий - передать: PERSONALpublic java.lang.String addAttachment(java.lang.String workID, MultipartFormDataInput input, java.lang.String path, java.lang.String locale)
Добавляет файл к работе
workID
- uuid работыpath
- строка показывающая, в какую подпапку контейнера файлов работы необходимо положить файл.
Возможные значения:
locale
- локаль пользователяpublic java.lang.String createAttachment(java.lang.String workID, java.lang.String path, java.lang.String fileName, java.lang.String filePath, java.lang.String locale)
Метод добавляет вложение к работе из временного файла, загруженного на сервер с помощью API хранилища
URL work/{workID}/attachment/createworkID
- UUID работыpath
- строка показывающая, в какую подпапку контейнера файлов работы необходимо положить файл.
Возможные значения:
fileName
- Название загружаемого файлаfilePath
- Путь к временному файлу, загруженному на серверlocale
- локаль пользователяStorageService.startUploadFile(String)
,
StorageService#uploadPart(org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput, String, String)
public java.lang.String doCreateAttachment(java.lang.String workID, java.lang.String path, java.lang.String fileName, java.lang.String filePath, java.lang.String locale, int successResult, java.lang.String successMessage)
public java.lang.String deleteComment(java.lang.String commentID, java.lang.String locale)
Удаляет комментарий
URL rest/api/workflow/work/comments/removecommentID
- uuid комментарияlocale
- локаль пользователяpublic java.lang.String getAttachments(java.lang.String workID, int count, boolean getCounters, java.lang.String locale)
workID
- uuid работыcount
- количество файлов которое должно быть возвращено (по умолчанию 0)getCounters
- если true, метод так же возвращает общее количество вложений данной работыlocale
- локаль пользователяpublic java.lang.String getWorkDocumentInfo(java.lang.String workID, java.lang.String locale)
workID
- UUID работыlocale
- локаль пользователяpublic java.lang.String getFullAttachments(java.lang.String workID, java.lang.String locale)
[{"attachments": [{"uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2335", "name": "Изображение.jpg", "created_label": "15 минут назад", "created": "2013-06-26 09:12:54","icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2335"}] }, {"work_files": [{"uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2332", "name": "Документ.doc", "created_label": "15 минут назад", "created": "2013-06-26 09:12:54","icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2332"}] }]
workID
- - uuid работыlocale
- - локаль пользователяpublic java.lang.String deleteAttachment(java.lang.String nodeUUID, java.lang.String locale)
nodeUUID
- идентификатор файла который надо удалитьlocale
- локаль пользователяpublic java.lang.String getDefaultWorkFields(java.lang.String locale)
locale
- public Response createWork(java.lang.String name, java.lang.String startDate, java.lang.String finishDate, java.lang.String userID, java.lang.String authorID, java.util.List<java.lang.String> resUserID, java.lang.String priority, java.lang.String completionFormID, java.lang.String completionFormCode, boolean force, java.lang.String moduleID, java.lang.String comment, java.lang.String repeat, java.util.HashSet<java.lang.String> path, java.lang.String locale)
Обязательные для создания работы поля, в списке ниже отмечены *
name
- *название работе (FormParam)startDate
- *дата и время начала работы в формате yyyy-MM-dd HH:mm:ss (FormParam)finishDate
- *дата и время завершения работы в формате yyyy-MM-dd HH:mm:ss (FormParam)userID
- uuid ответственного (FormParam)authorID
- *uuid автора работы (FormParam)resUserID
- uuid исполнителей работы (параметр resUserID должен быть указан столько раз- сколько исполнителей
есть у работы, например resUserID=user_uid_1&resUserID=user_uid_2&resUserID=user_uid_3) (FormParam)priority
- *приоритет (FormParam)completionFormID
- идентификатор формы завершения (FormParam) ( можно указывать либо данный параметр либо параметр completionFormCode, при этом если передаются оба поля, то completionFormCode в приоритете)completionFormCode
- код формы завершения (FormParam) ( можно указывать либо данный параметр либо параметр completionFormID, при этом если передаются оба поля, то completionFormCode в приоритете)locale
- локаль (QueryParam)force
- необходимо передать true для того чтобы можно было создать работу, даже если у авторизованного пользователя нет прав ставить работу
исполнителю.
Этот параметр принимается в счет только если одновременно передается параметр moduleID, который равен
идентификатору внешнего модуля. Это ограничение сделано с целью не допустить без контрольное создание работ
в обход системы прав.moduleID
- идентификатор модуля (из таблицы outer_modules)comment
- комментарий, который будет добавлен к работе после ее созданияpath
- список вложений, которые будут добавлены при создании работы.
параметр path должен быть указан столько раз, сколько вложений нужно добавить
строка path должна выгядеть слеующим обраом: ПУТЬ:ИМЯ, где:
ПУТЬ - путь до врменного файла, созданого на серере при помощи метода rest/api/storage/start_upload,
ИМЯ - имя добавляемого вложенияrepeat
- данные о периоде повторения работы (не обяз., по умолчанию "Нет");WorkUtilWrapper#getCommentJson(arta.synergy.web.common.client.data.actions.ActionComment, String, String)
,
StorageService.startUploadFile(java.lang.String)
,
StorageService#uploadPart(org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput, java.lang.String, java.lang.String)
public Response saveWork(java.lang.String name, java.lang.String startDate, java.lang.String userID, java.lang.String finishDate, java.lang.String priority, java.lang.String completionFormID, java.lang.String completionFormCode, java.lang.String actionID, java.lang.String repeat, java.lang.String locale)
name
- название работыstartDate
- дата и время начала работы в формате yyyy-MM-dd HH:mm:00finishDate
- дата и время завершения работы в формате yyyy-MM-dd HH:mm:00priority
- приоритет работыuserID
- uuid ответственногоcompletionFormID
- идентификатор формы завершенияcompletionFormCode
- код формы завершенияactionID
- uuid работыlocale
- локаль работыrepeat
- данные о периоде повторения работы (не обяз., по умолчанию "Нет");public Response getSubWorks(java.lang.String workID, int startRecord, int recordsCount, java.lang.String locale)
workID
- uuid работыlocale
- локаль пользователяstartRecord
- начальный офсет в общем списке результатовrecordsCount
- колечество результатов в ответеWorkUtilWrapper#getCommentJson(arta.synergy.web.common.client.data.actions.ActionComment, String, String)
public java.lang.String deleteWork(java.lang.String locale, java.lang.String workID)
locale
- локаль пользователяworkID
- uuid работы, которую необходимо удалитьpublic Response setWorkProgress(java.lang.String workID, int progress, java.lang.String locale)
workID
- uuid работыprogress
- новое значение прогресса (0-100)locale
- локаль пользователяpublic Response setWorkState(java.lang.String workID, int stateID, java.lang.String locale)
workID
- UUID работыstateID
- новый статус работыlocale
- локаль пользователяActionStates#COMPLETED
public java.lang.String markWorkSeen(java.lang.String workID)
Метод отмечает данную работу как "просмотренную"
URL rest/api/workflow/work/set_seenworkID
- uuid работыpublic java.lang.String getWorkCompletionResult(java.lang.String workID, java.lang.String locale)
Метод возвращает информацию о результате завершения данной работы
URL rest/api/workflow/work/completion_resultworkID
- UUID работыlocale
- локаль пользователяWorkUtilWrapper#getJson(arta.synergy.web.common.client.data.actions.completion.CompletionResult, String)
@Deprecated public java.lang.String getWorkActions(java.lang.String workID, java.lang.String locale)
Возвращает набор действий, которые может совершить авторизованный пользователь над данной работой
URL rest/api/workflow/work/get_actionsworkID
- uuid работыlocale
- локаль пользователяWorkActionType
,
WorkActionSubType
,
ActionColor
public java.lang.String getProcessFinishInfo(java.lang.String workID, java.lang.String locale)
Возвращает информацию, необходимую для построения диалога завершения работы по согласованию/утверждению/ознакомлению
URL rest/api/workflow/process_infoworkID
- идентификатор работыlocale
- локаль пользователяActionColor
public java.lang.String getSendWorkInfo(java.lang.String workID, java.lang.String documentID, java.lang.String actionType, java.lang.String operationType, java.lang.String locale)
Возвращает информацию необходимую для построения диалога отправки работы на согласование/утверждение/ознакомление/перепоручение/передача
URL rest/api/workflow/send_work_infoworkID
- идентификатор работыdocumentID
- идентификатор документаactionType
- идентификатор действияoperationType
- идентификатор операцииlocale
- локаль пользователяActionColor
public Response finishProcess(java.lang.String procInstID, java.lang.String signal, java.lang.String comment, java.lang.String rawdata, java.lang.String signdata, java.lang.String certificate, java.lang.String certID, boolean addSignature, java.lang.String locale)
Метод завершает процесс согласования/утверждения/ознакомления
URL rest/api/workflow/finish_processprocInstID
- идентификатор процесса (родительского для процесса работы, поле procInstID работы)signal
- название сигналаcomment
- комментарий, может отсутствоватьrawdata
- base-64 закодированные подписываемые данные (получаются в методе getProcessFinishInfo/process_info) (параметр обязателен если включена настройка требовать подпись)signdata
- base-64 закодированные подписанные данные (параметр обязателен если включена настройка требовать ключ и сертификат)certificate
- base-64 закодированный сертификат пользователя (параметр обязателен при наличии параметра signdata) (обяз. если включена настройка требовать ключ и сертификат)certID
- идентификатор сертификата, получаемый в методе verificationkey (certID::::sigalg) (обяз. если включена настройка требовать ключ и сертификат)addSignature
- необходимо ли добавить подписьlocale
- локаль пользователяpublic java.lang.String getWorkCompletionData(java.lang.String workID, java.lang.String locale)
Метод возвращает информацию о результате завершения данной работы и список подтвержденных результатов дочерних работ
URL rest/api/workflow/work/get_completion_dataworkID
- UUID работыlocale
- локаль пользователяWorkUtilWrapper#getJson(arta.synergy.web.common.client.data.actions.completion.CompletionResult, String)
public Response acceptWorkResult(java.lang.String workID, java.lang.String resultID, java.lang.String locale)
Метод подтверждает результат работы
URL rest/api/workflow/work/accept_resultworkID
- UUID работыresultID
- UUID результата работыlocale
- локаль пользователяpublic Response rejectWorkResult(java.lang.String workID, java.lang.String resultID, java.lang.String startDate, java.lang.String finishDate, int progress, java.lang.String comment, java.lang.String locale)
Метод отклоняет результат работы
URL rest/api/workflow/work/reject_resultworkID
- UUID работыresultID
- UUID результата работыstartDate
- дата время начала работы в формате yyyy-MM-dd HH:mmfinishDate
- дата время завершения работы в формате yyyy-MM-dd HH:mmprogress
- измененный прогресс работыcomment
- комментарий отклоненияlocale
- локаль пользователяpublic Response setWorkResult(java.lang.String workID, java.lang.String completionForm, java.lang.String locale)
workID
- UUID работыcompletionForm
- тип формы завершения работыlocale
- локаль пользователяStorageService.startUploadFile(String)
,
(String)
public Response getFormForCompletionResult(java.lang.String formUUID, java.lang.String formCode, java.lang.String workID, java.lang.String locale)
Создает форму для создания результата по форме завершения "форма"
formUUID
- UUID формы, соответствующей форме завершенияformCode
- код формы, соответствующей форме завершенияworkID
- UUID работыlocale
- локаль пользователяpublic Response startRoute(java.lang.String finishDate, java.util.List<java.lang.String> resUserID, java.lang.String userID, java.lang.Integer type, java.lang.String name, java.lang.String completionFormID, java.lang.String completionFormCode, java.lang.String workID, java.lang.String documentID, java.lang.String locale)
Отправляет работу по маршруту (перепоручение, согласование, ознакомление или утверждение)
finishDate
- Дата завершения работ по маршруту в формате yyyy-MM-dd HH:mm:ssresUserID
- список идентификаторов пользователей, которым отправляется работаuserID
- uuid ответственного (можно не передавать)type
- тип, одно из значений:
name
- название работыcompletionFormID
- UUID формы завершения, имеет смысл только для типа RouteItemElementType.ASSIGNMENT_ITEM 3 ( можно указывать либо данный параметр либо параметр completionFormCode, при этом если передаются оба поля, то completionFormCode в приоритете)completionFormCode
- Код формы завершения, имеет смысл только для типа RouteItemElementType.ASSIGNMENT_ITEM 3 ( можно указывать либо данный параметр либо параметр completionFormID, при этом если передаются оба поля, то completionFormCode в приоритете)workID
- UUID родительской работыdocumentID
- UUID документаlocale
- локаль пользователяpublic Route getResponsibleRoute(java.lang.String userID, java.lang.String name, java.util.Date finishDate, java.lang.String completionFormCode)
public java.lang.String transferWork(java.lang.String workID, java.lang.String name, java.lang.String userID, java.lang.String locale)
Метод выполняет передачу работы другому пользователю
workID
- UUID работы (FormParam)name
- название работы (FormParam)userID
- UUID пользователя, которому необходимо передать работуlocale
- локаль пользователя (QueryParam)public java.lang.String getCounters()
Метод возвращает информацию о счетчиках работ
{ "key": "OWN_WORKS_null_null", "value": "198"}, { "key": "OWN_WORKS_null_null_", "value": "2"}
,
{ "key": "OWN_WORKS_c83a3be1-3659-43eb-a600-5ca1efd8dddb_null", "value": "12"}, { "key": "OWN_WORKS_c83a3be1-3659-43eb-a600-5ca1efd8dddb_null_", "value": "0"}
public java.lang.String getExecutionProcess(java.lang.String locale, java.lang.String documentID, java.lang.String workID)
Метод возвращает ход исполнения по документу
locale
- локаль пользователяdocumentID
- идентификатор документаworkID
- идентификатор работы (должен быть указан один параметр или идентификатор документа или идентификатор работы)Список допустимых вариантов для поля typeID:
Пример возвращаемого массива:
[ { "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": "", "completionFormCode": "", "routeItemID": "b94047e9-bb62-4271-a287-6e743962a72c", "durationFact": 3600, "subProcesses": [], "timerID": "" }, { "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": "", "completionFormCode": "", "routeItemID": "b94047e9-bb62-4271-a287-6e743962a72c", "durationFact": 0, "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": "", "completionFormCode": "", "routeItemID": "0977dfc7-96ab-4370-8734-eb7a13c0ff70", "durationFact": 0, "subProcesses": [], "timerID": "" } ], "timerID": "" } ]
public java.lang.String getHost()
public java.lang.String getUserID()
public Response getWorkTime(java.lang.String startDate, java.lang.String finishDate)
startDate
- Дата началаfinishDate
- Конечная датаpublic Response getFinishDate(java.lang.String startDate, java.lang.String duration)
startDate
- Дата началаduration
- Длительность (в минутах)public java.lang.String getWorkItems(java.lang.String workID, java.lang.String locale)
workID
- uuid работыlocale
- локаль пользователяWorkActionType
,
WorkActionSubType
,
ActionColor
public java.lang.String resolutionInfo(java.lang.String workID, java.lang.String locale)
workID
- workID (uuid работы)locale
- локальpublic java.lang.String getWorkDialogs(java.lang.String uuid, java.lang.String type, java.lang.String locale)
uuid
- uuid диалога (параметр не обязателен)type
- используется для получения описания диалога по умолчанию (
WORK - диалог создания работы,
DOCUMENT_PROJECT - диалог создания документа,
TEMPLATE_PROJECT - диалог создания документа по шаблону)locale
- локаль{ name: "КАСТОМНЫЙ ДИАЛОГ", uuid: "363fed9c-2dcc-4037-936d-6338cebcb4bc", default: "true", special: "true", type: "WORK", steps: [ [{ "type": "NAME", "number": 1, "show": true }... ...{ "type": "COMMENT", "number": 7, "show": false }] ... ] }name - название диалога (в зависимости от локали) uuid - идентификатор диалога default - является ли диалог диалогом по умолчанию для текущего типа special - является ли диалог "особым" type - тип диалога (WORK, DOCUMENT_PROJECT, TEMPLATE_PROJECT) steps - список компонентов для каждого из шагов Каждое поле состоит из следующих полей: type - тип, все возможные типы указаны ниже number - порядковый номер поле show - показать или нет Внимание: поле number может остуствовать или иметь значение null, это означает для типа компонента не указан номер и он имеет порядок по умолчаню Описание типы компонентов для диалога создания работы: NAME - Название RESPONSIBLE - Ответственный AUTHOR - Автор USERS - Исполнитель DATES - Сроки PRIORITY - Приоритет LOAD - Нагрузка ATTACH_FILE - Приложить файл KEYWORDS - Ключевые слова REPEAT - Повторять COMPLETION_FORM - Форма завершения COMMENT - Комментарий Описание типы компонентов для диалога создания проекта документа: NAME_P - Название DOCUMENT_TYPE - Тип документа COMPLETION_P - Завершение PRIORITY_P - Приоритет ATTACH_FILE_P - Прикрепить файл KEYWORDS_P - Ключевые слова Описание типы компонентов для диалога создания проекта документа по шаблону: NAME_T - Название DOC_TEMPLATE - Шаблон документа CREATE_WORK - Создать работу COMPLETION_T - Завершение PRIORITY_T - Приоритет KEYWORDS_T - Ключевые слова
arta.synergy.web.common.client.data.actions.dialog.WorkDialogType#WORK
,
arta.synergy.web.common.client.data.actions.dialog.WorkDialogType#DOCUMENT_PROJECT
,
arta.synergy.web.common.client.data.actions.dialog.WorkDialogType#TEMPLATE_PROJECT
public Response setWorkResponsibles(java.lang.String locale, ActionResponsibles responsibles)
Метод API указывает исполнителей для работ, где указана должность
URL: rest/api/workflow/work/set_responsibles
Method POST
Метод принимает следующие входные параметры (json):
workID - ид работы
responsibles - массив uuid пользователей должности, которым будет назначена работа;
Пример передаваемого запроса:
{
"workID": "6e90e0a1-efe4-4d78-93e5-4540315560e0",
"responsibles":["02a5723f-811d-4f62-94c9-ccdf2d74cd1e"]
}
В случае успешного выполнения json со следующими полями:
{ "errorCode": 0, "errorMessage": "Данные сохранены" }
responsibles
- json-объект;locale
- локальpublic Response dismissTimer(java.lang.String id)
Метод API для прерывания таймера
URL: rest/api/workflow/dismiss_timer
Method POST
Метод принимает следующие входные параметры:
id - ид таймера
В случае успешного выполнения json со следующими полями:
{ "errorCode": 0, "errorMessage": "Таймер прерван" }
{ "errorCode": 0, "errorMessage": "Таймер прерван" }
{ "errorCode": 3, "errorMessage": "Не передан либо передан некорректный параметр id" }
{ "errorCode": 2, "errorMessage": "Пользователь не авторизован, или у пользователя недостаточно прав для изменения." }
{ "errorCode": 13, "errorMessage": "Таймер с кодом %значение% не найден. " }
id
- ;public Response setStartdate(java.lang.String id, java.lang.String startdate)
Метод API для обновления таймера
URL: rest/api/workflow/set_startdate
Method POST
Метод принимает следующие входные параметры:
id - ид таймера
startdate - Дата и время запуска таймера в формате yyyy-MM-dd либо yyyy-MM-dd HH:mm:00
В случае успешного выполнения json со следующими полями:
{ "errorCode": 0, "errorMessage": "Таймер обновлен" }
{ "errorCode": 3, "errorMessage": "Не передан либо передан некорректный параметр id" }
{ "errorCode": 2, "errorMessage": "Пользователь не авторизован, или у пользователя недостаточно прав для изменения." }
{ "errorCode": 13, "errorMessage": "Таймер с кодом %значение% не найден. " }
{ "errorCode": 666, "errorMessage": "Таймер ранее запущен" }
{ "errorCode": 4, "errorMessage": "Некорректно указана дата startdate" }
id
- ;startdate
- ;