Docflow flow

Поручить работу по документу

Changed on

«Поручить» в карточке документа: заводит задачу модуля tasks исполнителю (плюс соисполнители) со связью на документ. Текст поручения — это и есть резолюция: его первая строка вместе с названием документа становится названием задачи, весь текст — описанием. Проект задач выбирать не нужно: задача ложится в системный раздел «Поручения», участники поручения становятся его участниками и видят только свои поручения. Срок не задан — три рабочих дня по производственному календарю, 18:00 по Москве; срок в прошлом — 422. Поручить может тот, кто видит документ (право записи не нужно: поручение документ не меняет); чужой документ — 404. Исполнитель или соисполнитель не состоит в кабинете — 422 docflow.assignment.invalid с полем executor_id; модуль задач не подключён — 409 docflow.assignment.unavailable. Исполнение задачи автор узнаёт уведомлением задачника «Задача выполнена». Повтор с тем же Idempotency-Key отдаёт то же поручение.

post/api/v1/docflow/flow/documents/{id}/assignments

Request

  • Base URL: https://erp.akeda.ru
  • URL: https://erp.akeda.ru/api/v1/docflow/flow/documents/{id}/assignments
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://erp.akeda.ru/oauth2/authorize, token URL https://erp.akeda.ru/oauth2/token, scopes: akeda:delegate)

Path parameters

idstring uuid required

Карточка документа

Headers

X-Tenantstring required

Slug выбранного кабинета; кабинет не является юрлицом

Idempotency-Keystring

Ключ одной логической попытки команды. Единственная форма идемпотентности на уровне HTTP; читают его только операции, у которых этот параметр объявлен.

Повтор ТОГО ЖЕ запроса (метод, адрес с параметрами, тело) с тем же ключом не выполняет команду второй раз, а отдаёт первый успешный ответ с заголовком Idempotent-Replay: true. Тот же ключ с другим запросом — отказ 422 idempotency.key_mismatch, а не чужой ответ. Пока первая попытка ещё выполняется, повтор получает 409 idempotency.in_progress и Retry-After: он не ждёт и не выполняется второй раз.

Ключ принадлежит предъявителю в кабинете: человеку, кабинетному API-ключу или установке приложения. Одинаковый ключ у соседа — другая попытка.

Отказ 4xx ключ ОСВОБОЖДАЕТ: запрос отклонён до работы, в кабинете не изменилось ничего, и исправленный запрос с тем же ключом выполняется. Отказ 5xx ключ ЗАПИРАЕТ: записалось или нет — неизвестно, коммит мог случиться, а ответ до вас не доехать. Повтор с тем же ключом получает тот же статус и тот же машинный код, а команда второй раз не выполняется. Чтобы попробовать снова, прочитайте отдельным запросом, появился ли результат, и возьмите НОВЫЙ ключ.

И ответ, и запомненный отказ живут сутки; после этого тот же ключ — новая попытка, и команда выполняется заново. Ответы, несущие секрет (выдача токена, аренда секрета настройки), заголовок не читают: секрет отдаётся ровно один раз. Хранилище недоступно — 503 idempotency.unavailable, команда без защиты не выполняется; этот отказ приходит ДО заявки на ключ и потому ключ не тратит.

Для естественного ключа интеграции годится любая строка вида crm:order:123:create; UUID не обязателен.

Request body

textstring required

Текст поручения (резолюция): что сделать по документу

executor_idinteger required

Исполнитель — действующий участник кабинета

coexecutor_idsinteger[]

Соисполнители; исполнитель и повторы отбрасываются

due_atstring date-time

Срок; не задан — три рабочих дня, 18:00 по Москве

Response

Поручение заведено

task_idstring uuid required
identifierstring required

Номер задачи (POR-1)

titlestring required

Название задачи: первая строка поручения и название документа

textstring required

Текст поручения

due_atstring date-time nullable required

Срок; пусто — без срока

state'open' | 'done' | 'cancelled' required

Состояние по этапу задачи

status_namestring required

Этап задачи словами кабинета

overdueboolean required

Открыто, а срок прошёл

created_atstring date-time required

Когда поручено

document_idstring uuid required
document_labelstring required

Название документа на момент поручения

Changes