REST API: Сложные фильтры справочников: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
Строка 121: Строка 121:


{| class="wikitable"
{| class="wikitable"
|rowspan="2" |3
|-
|1
|1
|-
|-
|2
|2
|-
|rowspan="2" |3
|-
|-
|4
|4

Версия от 09:36, 16 января 2023

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

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


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


{
  "offset": 0,
  "pageSize": 100,
  "fields": "directory,parentKey,key,3,5",
  "filters": [
    {
      "type": 6103,
      "field": 3,
      "operator": "equal",
      "value": {
        "dateType": "otherRange",
        "dateFrom": "15-12-2022",
        "dateTo": "17-12-2022"
      }
    },
    {
      "type": 6109,
      "field": 5,
      "operator": "equal",
      "value": "user:50"
    }
  ]
}


Тип Название Операторы Формат value
6103 Поле справочника типа Дата
  • 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",
}
6108 Поле справочника типа Контакт
6109 Поле справочника типа Сотрудник
6110 Поле справочника типа Контрагент
6112 Поле справочника типа Группа, сотрудник, контакт
6113 Поле справочника типа Список сотрудников
  • equal
  • notequal
string - номер сотрудника/контакта/группы с префиксом.

Например: “user:1”, “contact:5”, “group:3”


3
1
2
4
5


Тип Название Операторы Формат value
2 Ответственный
47 Доступен пользователю
48 Может редактироваться пользователем
4108 Пользовательское поле типа Контакт
4109 Пользовательское поле типа Сотрудник
4112 Пользовательское поле типа Группа, сотрудник, контакт
4113 Пользовательское поле типа Список сотрудников
4006 Является компанией
  • equal
int - 1

boolean - true

4007 Является контактом
4010 С доступом в ПланФикс
4012 Может быть участником задач
4017 Не может быть участником задач
4013 Может быть контрагентом задач
4018 Не может быть контрагентом задач
4201 Контрагент без активных задач
4202 Не участвует в активных задачах
4203 Контрагент с активными задачами
4204 Участвует в активных задачах
4205 Контрагент в просроченных задачах
4206 Участвует в просроченных задачах
4001 Имя или фамилия контакта / название компании
  • equal
  • notequal
string - осуществляется фильтр содержит / не содержит
4002 Должность
4003 Телефон
4004 Адрес
4005 Email
4221 Дополнительный email
4014 Имя контакта / Название компании
4015 Фамилия контакта
4101 Пользовательское поле типа Строка
4102 Пользовательское поле типа Число
  • equal
  • notequal
  • gt
  • lt
int
4105 Пользовательское поле типа Чек-бокс
  • equal
  • notequal
int - 1 / 0

boolean

4106 Пользовательское поле типа Список
  • equal
  • notequal
string
4107 Пользовательское поле типа Справочник
  • equal
  • notequal
int - идентификатор записи
4114 Пользовательское поле типа Набор записей справочника
  • equal
  • notequal
int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой)
4111 Пользовательское поле типа Набор значений
  • equal
  • notequal
string - значение, для условия по нескольким значениям - значения через ; (точку с запятой)
4008 Группа контактов
  • equal
  • notequal
int - идентификатор группы, можно получить методом /contact/groups
4016 Шаблон контакта
  • equal
  • notequal
int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates


Перейти