Формы
Форма — это набор полей и правил маршрутизации, которые описывают бизнес-процесс.
Типичным примером бизнес-процесса может быть возмещение сотруднику командировочных расходов.
Поля формы — это набор данных, с которым работает участник бизнес-процесса.
Например, в процессе возмещения командировочных расходов такими полями могут быть "Фамилия сотрудника", "Дата командировки", "Сумма расходов к возмещению" и "Подтверждающие документы".
Маршрутизация — это набор правил, которые описывают движение документа (задачи) в бизнес-процессе. Обычно маршрутизация разбита на этапы. Каждому этапу можно задать название, а так же правила, по которым на этот этап добавляются участники.
Например, возмещение командировочных расходов можно разбить на такие этапы: "Заполнение", на котором автор заявки заполняет поля и прикладывает подтверждающие документы, "Согласование", на котором в зависимости от суммы могут стоять разные пользователи и "Бухгалтерия", на котором стоит бухгалтер для возмещения денежных средств работнику.
Подробнее о формах можно прочитать в справке.
Методы
- GET/formsПолучение шаблонов всех форм
- GET/forms/{form-id}Получение шаблона формы
- GET/forms/{form-id}/registerСписок задач по форме
- GET/forms/{form-id}/permissionsСписок доступов к форме
- POST/forms/{form_id}/permissionsИзменение доступов к форме
GET /forms
Метод возвращает описание всех форм, в которых текущий пользователь является менеджером или участником.
GET https://api.pyrus.com/v4/forms
Тело ответа
{ "forms": [ { "id": 36120, "name": "Payments", "steps": { "1": "Manager", "2": "Accounting", "4": "CEO" }, "fields": [ { "id": 1, "type": "text", "name": "Purpose", "info": { "required_step": 1, "immutable_step": 1 } }, { "id": 2, "type": "money", "name": "Amount", }, { "id": 3, "type": "catalog", "name": "Payment type", "info": { "catalog_id": 277 } }, { "id": 4, "type": "table", "name": "Payment Schedule", "info": { "columns": [ { "id": 5, "type": "date", "name": "Date", "parent_id": 4 }, { "id": 6, "type": "money", "name": "Amount", "parent_id": 4 } ] } } ], "deleted_or_closed": false, "print_forms": [ { "print_form_id": 2633, "print_form_name": "templateA.docx" }, { "print_form_id": 2645, "print_form_name": "templateB.xlsx" } ], "folder": [folder1] } ] }
curl
curl -X GET \ 'https://api.pyrus.com/v4/forms/' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json'
Полный список типов полей формы находится в разделе Формат полей формы.
GET /forms/{form-id}
Метод возвращает описание формы с указанным id.
GET https://api.pyrus.com/v4/forms/36120
Тело ответа
{ "id": 36120, "name": "Payments", "steps": { "1": "Manager", "2": "Accounting", "4": "CEO" }, "fields": [ { "id": 1, "type": "text", "name": "Purpose", "info": { "required_step": 1, "immutable_step": 1 } }, { "id": 2, "type": "money", "name": "Amount", }, { "id": 3, "type": "catalog", "name": "Payment type", "info": { "catalog_id": 277 } }, { "id": 4, "type": "table", "name": "Payment Schedule", "info": { "columns": [ { "id": 5, "type": "date", "name": "Date", "parent_id": 4 }, { "id": 6, "type": "money", "name": "Amount", "parent_id": 4 } ] } } ], "deleted_or_closed": false, "print_forms": [ { "print_form_id": 2633, "print_form_name": "templateA.docx" }, { "print_form_id": 2645, "print_form_name": "templateB.xlsx" } ], "folder": [folder1] }
curl
curl -X GET \ 'https://api.pyrus.com/v4/forms/36120' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json'
Полный список типов полей формы находится в разделе Формат полей формы.
GET /forms/{form-id}/register
Метод возвращает список задач, созданных по форме. В ответе возвращаются только общая информация о задаче, список заполненных полей формы и маршрутизация. Для получения всех комментариев к задаче воспользуйтесь методом GET /tasks/{task-id}.
GET https://api.pyrus.com/v4/forms/1423/register ?fld2=gt10000,lt15000 &fld1=IT%20conference%20in%20Amsterdam &fld3=277 &include_archived=y
Тело ответа
{ "tasks": [{ "id": 11610, "create_date": "2017-08-20T12:31:14Z", "last_modified_date": "2017-08-23T10:20:11Z", "current_step": 1, "fields": [ { "id": 1, "type": "text", "name": "Purpose", "value": "IT conference in Amsterdam" }, { "id": 2, "type": "money", "name": "Amount", "value": 10306.25 }, { "id": 3, "type": "catalog", "name": "Payment type", "value": { "item_id": 845, "headers": [ "Payment types" ], "values": [ "IT Conference" ] } }, { "id": 4, "type": "table", "name": "Payment Schedule", "value": [ { "row_id": 0, "cells": [ { "id": 5, "type": "date", "name": "Date", "value": "2017-08-26", "parent_id": 4, "row_id": 0 }, { "id": 6, "type": "money", "name": "Amount", "value": 10000, "parent_id": 4, "row_id": 0 } ] }, { "row_id": 1, "cells": [ { "id": 5, "type": "date", "name": "Date", "value": "2017-08-27", "parent_id": 4, "row_id": 1 }, { "id": 6, "type": "date", "name": "Amount", "value": 306.25, "parent_id": 4, "row_id": 1 } ] } ] } ] }] }
curl
curl -X GET \ 'https://api.pyrus.com/v4/forms/327874/register?fld2=gt10000,lt15000&fld1=IT%20conference%20in%20Amsterdam&fld3=277&include_archived=y' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json'
Если длины адресной строки недостаточно для передачи всех параметров фильтрации, вы можете вызвать данный метод с помощью HTTP-метода POST. Параметры указываются в формате JSON в теле запроса:
{ "fld2": "gt10000,lt15000", "fld1": "IT conference in Amsterdam", "fld3": "eq277", "include_archived": "y" }
Параметры
steps | Номер этапа, можно указать несколько этапов через запятую. |
task_ids | Номера задач, которыми ограничится выборка задач реестра формы. |
include_archived | Укажите "y", если хотите включить в результат архивные задачи. |
field_ids | Идентификаторы полей, значения которых будут возвращены в ответе. Несколько значений идентификаторов указываются через запятую. Данный параметр влияет на порядок возвращаемых полей в случае формата csv. Если параметр не передан, возвращаются все поля, если параметр передан, но не содержит идентификаторов, то в ответе поля формы будут отсутствовать. |
fld{field_id} | Фильтр задач по полю:
Операторы lt и gt применимы только к полям типа date, money, number, due_date, creation_date. Оператор вхождения в список применим к полям типа multiple_choice, catalog, person, author, form_link. Оператор empty применим только для полей типа multiple_choice, catalog, person, author, form_link. Для составных типов в качестве значения фильтрации передается только идентификатор записи. Более подробная информация о типах полей находится в разделе Формат полей формы. Фильтрация для полей с типом file, time, title, project, note не поддерживается. ** Следует учесть, что поиск по точному соответствию не учитывает служебные слова (частицы, союзы, предлоги) |
due_filter | Фильтр задач по просроченности:
|
format | Укажите "csv", если хотите получить результат в формате csv. По умолчанию формат ответа — json. |
delimiter | Разделитель полей в csv файле. По умолчанию — ",". |
encoding | Кодировка ответа. По умолчанию — "utf-8". |
simple_format | Укажите "y", если хотите получить csv в упрощенном формате.Все переносы строк будут заменены на пробелы. |
modified_before | Задачи, измененные до указанной даты по UTC (включительно).Формат: YYYY-MM-DDThh:mm:ssZ |
modified_after | Задачи, измененные после указанной даты по UTC (включительно).Формат: YYYY-MM-DDThh:mm:ssZ |
created_before | Задачи, созданные до указанной даты по UTC (включительно).Формат: YYYY-MM-DDThh:mm:ssZ |
created_after | Задачи, созданные после указанной даты по UTC (включительно).Формат: YYYY-MM-DDThh:mm:ssZ |
closed_before | Задачи, завершенные до указанной даты по UTC (включительно).Формат: YYYY-MM-DDThh:mm:ssZ |
closed_after | Задачи, завершенные после указанной даты по UTC (включительно). Формат: YYYY-MM-DDThh:mm:ssZ |
item_count | Максимальное количество задач в ответе. Значение должно быть больше 0 и меньше или равно 20000. |
Доступы к форме
Вы можете редактировать права доступа к форме. Чтобы запросить методы для этого, обратитесь в техподдержку Pyrus по электронной почте support@pyrus.com Подробнее о доступах к форме можно прочитать в справке.
Формат уровней прав доступа:
- "administrator" — администратор формы;
- "manager" — менеджер формы (без условий);
- "member" — участник формы;
- "none" — без доступа (используется только при изменении прав доступа, чтобы лишить пользователя доступа к форме).
GET /forms/{form-id}/permissions
Метод позволяет получить список доступов пользователей к форме.
GET https://api.pyrus.com/v4/forms/36120/permissions
Тело ответа
{ "permissions": { "1733": "manager", "1731": "administrator" } }
curl
curl -X GET \ 'https://api.pyrus.com/v4/forms/327874/permissions' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json'
POST /forms/{form_id}/permissions
Чтобы изменить права доступа у пользователя, в теле запроса нужно указать новые права для пользователя. Формат тела ответа такой же, как и в получении списка доступов для формы.
Ограничения:
- нельзя менять права администраторов и добавлять новых администраторов в форму;
- нельзя добавлять менеджеров формы по условию.
POST https://api.pyrus.com/v4/forms/36120/permissions
Тело запроса
{ "permissions": { "1733": "member" } }
Тело ответа
{ "permissions": { "1733": "member", "1731": "administrator" } }
curl
curl -X POST \ https://api.pyrus.com/v4/forms/36120/permissions \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "permissions": { "1733": "member" } }'