REST API: Сложные фильтры проектов

Материал из Planfix
Версия от 11:54, 27 декабря 2023; Seva (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к: навигация, поиск

Сложные фильтры в REST API ПланФикса применяются в методе «/project/list» при получении списка проектов. Фильтры проектов задаются следующим набором параметров:

  • type — числовой идентификатор фильтра.
  • operator — оператор фильтра, одно из значений списка (equal, notequal, gt, lt). У разных фильтров могут быть разные допустимые операторы.
  • value — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом.
  • field — идентификатор пользовательского поля аналитики, по которому выполняется фильтр.


Пример запроса получения списка проектов с передачей нескольких фильтров, по пользовательскому полю типа «Дата» и пользовательскому полю типа «Сотрудник» (используется логика И):

{
  "offset": 0,
  "pageSize": 100,
  "fields": "id,name,description,3,5",
  "filters": [
    {
      "type": 5103,
      "field": 3,
      "operator": "equal",
      "value": {
        "dateType": "otherRange",
        "dateFrom": "15-12-2022",
        "dateTo": "17-12-2022"
      }
    },
    {
      "type": 5109,
      "field": 5,
      "operator": "equal",
      "value": "user:50"
    }
  ]
}


Тип Название Операторы Формат value
5103 Поле проекта типа «Дата»
  • equal
  • notequal
  • gt
  • lt

Объект :

 
"value": {
    "dateType": string,
    "dateValue": string,
    "dateFrom": string,
    "dateTo": string
}

dateType принимает следующие значения:

  • today - сегодня
  • yesterday - вчера
  • tomorrow - завтра
  • thisWeek - текущая неделя
  • lastWeek
  • nextWeek
  • thisMonth
  • lastMonth
  • nextMonth
  • last - последние n дней, n передается в dateValue
  • next - следующие n дней, n передается в dateValue
  • in - через n дней, n передается в dateValue
  • otherDate - точная дата, дата передается в формате дд-мм-гггг в dateFrom
  • otherRange - точный период, даты передаются в формате дд-мм-гггг в dateFrom и dateTo
  • otherDate_withTime - точная дата-время, дата передается в формате "дд-мм-гггг чч:мм" в dateFrom
  • otherRange_withTime - точный период с заданным временем, даты передаются в формате "дд-мм-гггг чч:мм" в dateFrom и dateTo

Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос.

Примеры:

"value": {
    "dateType": "thisWeek"
}
"value": {
    "dateType": "otherRange",
    "dateFrom": "01-12-2022",
    "dateTo": "06-12-2022"
}
"value": {
    "dateType": "otherDate_withTime",
    "dateFrom": "30-12-2022 12:00",
}
5005 Дата завершения
5013 Дата создания
5004 Автор
  • equal
  • notequal

string - номер сотрудника/контакта/группы с префиксом. Например: “user:1”, “contact:5”, “group:3”

5008 Клиент-менеджер
5012 Аудитор
5011 Исполнитель
5108 Поле проекта типа «Контакт»
5109 Поле проекта типа «Сотрудник»
5110 Поле проекта типа «Контрагент»
5112 Поле проекта типа «Группа, сотрудник, контакт»
5113 Поле проекта типа «Список сотрудников»
5001 Название проекта
  • equal
  • notequal

string - осуществляется фильтр содержит / не содержит

5101 Поле проекта типа «Строка»
  • equal
  • notequal
  • have
  • nothave
string - осуществляется фильтр равно / не равно / содержит / не содержит
5007 Номер проекта
  • equal
  • notequal
  • gt
  • lt

int

5102 Поле проекта типа «Число»
5105 Поле проекта типа «Чек-бокс»
  • equal
  • notequal
int - 1 / 0

boolean

5106 Поле проекта типа «Список»
  • equal
  • notequal
string
5107 Поле проекта типа «Запись справочника»
  • equal
  • notequal
int - идентификатор записи
5115 Поле проекта типа «Задача»
  • equal
  • notequal
int - номер задачи
5117 Поле проекта типа «Проект»
  • equal
  • notequal
int - номер проекта
5002 Группа проекта
  • equal
  • notequal
int - идентификатор группы
5006 Статус проекта
  • equal
  • notequal
int - идентификатор статуса
5010 Шаблон
  • equal
  • notequal
int - номер шаблона
5003 Контрагент
  • equal
  • notequal
int - номер контрагента

string - номер контрагента с префиксом, например: "contact:1"

5014 Надпроект
  • equal
  • notequal
int - номер надпроекта


Перейти