Формы. Pyrus Help
api:forms

Формы

Форма — это набор полей и правил маршрутизации, которые описывают бизнес-процесс.

Типичным примером бизнес-процесса может быть возмещение сотруднику командировочных расходов.

Поля формы — это набор данных, с которым работает участник бизнес-процесса.

Например, в процессе возмещения командировочных расходов такими полями могут быть «Фамилия сотрудника», «Дата командировки», «Сумма расходов к возмещению» и «Подтверждающие документы».

Машрутизация — это набор правил, которые описывают движение документа (задачи) в бизнес-процессе. Обычно маршрутизация разбита на этапы. Каждому этапу можно задать название, а так же правила, по которым на этот этап добавляются участники.

Например, возмещение командировочных расходов можно разбить на такие этапы: «Заполнение», на котором автор заявки заполняет поля и прикладывает подтверждающие документы, «Согласование», на котором в зависимости от суммы могут стоять разные пользователи и «Бухгалтерия», на котором стоит бухгалтер для возмещения денежных средств работнику.

Подробнее о формах можно прочитать в справке.

Методы

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"
              },
              {
                "id": 6,
                "type": "money",
                "name": "Amount"
              }
            ]
          }
        }
      ]
    }
  ]
}

Полный список типов полей формы находится в разделе Формат полей формы.

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",
    "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"
              },
              {
                "id": 6,
                "type": "money",
                "name": "Amount",
                "value": 10000
              }
            ]
          },
          {
            "row_id": 1,
            "cells": [
              {
                "id": 5,
                "type": "date",
                "name": "Date",
                "value": "2017-08-27"
              },
              {
                "id": 6,
                "type": "date",
                "name": "Amount"
                "value": 306.25
              }
            ]
          }
        ]
      }
    ]
  }]
}

Если длины адресной строки недостаточно для передачи всех параметров фильтрации, вы можете вызвать данный метод с помощью HTTP-метода POST. Параметры указываются в формате JSON в теле запроса:

{
    "fld2": "gt10000,lt15000",
    "fld1": "IT conference in Amsterdam",
    "fld3": "eq277",
    "include_archived": "y"
}

Параметры

steps Номер этапа, можно указать несколько этапов через запятую.
include_archived Укажите "y", если хотите включить в результат архивные задачи.
fld{field_id} Фильтр задач по полю:
  • Точное соответствие: fld1=Payment
  • Входит в список: fld14=15,20
  • Больше чем: fld3=gt15
  • Меньше чем: fld5=lt2017-01-01
  • В диапазоне: fld3=gt15.5,lt21

Операторы lt и gt применимы только к полям типа date, money, number, due_date, creation_date.

Оператор вхождения в список дополнительно применим к полям типа multiple_choice, catalog, person, author, form_link.

Для составных типов в качестве значения фильтрации передается только идентификатор записи.

Более подробная информация о типах полей находится в разделе Формат полей формы.

Фильтрация для полей с типом file, time, table, title, project, note не поддерживается.

Была ли эта статья полезной?

Да, спасибо! Нет, остался вопрос