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

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 16 промежуточных версий 2 участников)
Строка 9: Строка 9:
*'''operator''' — оператор фильтра, одно из значений списка (equal, notequal, gt, lt). У разных фильтров могут быть разные допустимые операторы.
*'''operator''' — оператор фильтра, одно из значений списка (equal, notequal, gt, lt). У разных фильтров могут быть разные допустимые операторы.
*'''value''' — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом.
*'''value''' — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом.
*'''field''' — идентификатор пользовательского поля аналитики, по которому выполняется фильтр.
*'''field''' — идентификатор пользовательского поля справочника, по которому выполняется фильтр.




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




Строка 103: Строка 103:
|-
|-
|6108 || Поле справочника типа Контакт
|6108 || Поле справочника типа Контакт
| rowspan="4" | 
*equal
*notequal
| rowspan="4" | string - номер сотрудника/контакта/группы с префиксом.
Например: “user:1”, “contact:5”, “group:3”
|-
|-
|6109 || Поле справочника типа Сотрудник
|6109 || Поле справочника типа Сотрудник
Строка 111: Строка 116:
|-
|-
|6113 || Поле справочника типа Список сотрудников
|6113 || Поле справочника типа Список сотрудников
|
*equal
*notequal
| string - осуществляется фильтр содержит / не содержит
|-
|-
| rowspan="5" |
|6101 || Поле справочника типа Строка
|  
*equal  
*equal  
*notequal  
*notequal  
| rowspan="5" | string - номер сотрудника/контакта/группы с префиксом.
*have
Например: “user:1”, “contact:5”, “group:3”
*nothave
|}
| string - осуществляется фильтр равно / не равно / содержит / не содержит
 
 
{| class="wikitable"
|rowspan="2" |3
|-
|1
|-
|2
|-
|4
|-
|5
|-
|}
 
 
 
{| class="wikitable" style="margin-top: 1em; width:100% "
!width="40"|Тип !!width="200"| Название !! Операторы !! Формат value
|-
|2 || Ответственный
|-
|47 || Доступен пользователю
|-
|48 || Может редактироваться пользователем
|-
|4108 || Пользовательское поле типа Контакт
|-
|4109 || Пользовательское поле типа Сотрудник
|-
|-
|4112 || Пользовательское поле типа Группа, сотрудник, контакт
|6102 || Поле справочника типа Число
|-
|4113 || Пользовательское поле типа Список сотрудников
|-
|4006 || Является компанией
| rowspan="8" | 
*equal
| rowspan="8" |  int - 1
boolean - true
|-
|4007 || Является контактом
|-
|4010 || С доступом в ПланФикс
|-
|4012 || Может быть участником задач
|-
|4017 || Не может быть участником задач
|-
|4013 || Может быть контрагентом задач
|-
|4018 || Не может быть контрагентом задач
|-
|4201 || Контрагент без активных задач
|-
|4202 || Не участвует в активных задачах
|-
|4203 || Контрагент с активными задачами
|-
|4204 || Участвует в активных задачах
|-
|4205 || Контрагент в просроченных задачах
|-
|4206 || Участвует в просроченных задачах
|-
|4001  || Имя или фамилия контакта / название компании
| rowspan="13" | 
*equal
*notequal
| rowspan="13" |  string - осуществляется фильтр содержит / не содержит
|-
|4002 || Должность
|-
|4003  || Телефон
|-
|4004 || Адрес
|-
|4005 || Email
|-
|4221 || Дополнительный email
|-
|4014 || Имя контакта / Название компании
|-
|4015 || Фамилия контакта
|-
|4101 || Пользовательское поле типа Строка
|-
|4102 || Пользовательское поле типа Число
|  
|  
*equal  
*equal
*notequal  
*notequal
*gt
*gt
*lt
*lt
| int
| int
|-
|-
|4105  || Пользовательское поле типа Чек-бокс
|6105 || Поле справочника типа Чекбокс
|  
| rowspan="2" |
*equal  
*equal
*notequal  
*notequal
| int - 1 / 0
| rowspan="2" | int - 1/0 <br> boolean
boolean
|-
|6005 || Является ли запись архивной
|-
|-
|4106  || Пользовательское поле типа Список
|6106 || Поле справочника типа Список
|  
|  
*equal  
*equal
*notequal  
*notequal
| string
| string
|-
|-
|4107  || Пользовательское поле типа Справочник
|6107 || Поле справочника типа Запись справочника
|  
|  
*equal  
*equal
*notequal  
*notequal
| int - идентификатор записи
| int - идентификатор записи
|-
|-
|4114  || Пользовательское поле типа Набор записей справочника
|6114 || Поле справочника типа Набор записей справочника
|  
|  
*equal  
*equal
*notequal  
*notequal
| int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой)
| int идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой)
|-
|-
|4111 || Пользовательское поле типа Набор значений
|6115 || Поле справочника типа Задача
|  
|  
*equal
*equal
*notequal
*notequal
| string - значение, для условия по нескольким значениям - значения через ; (точку с запятой)
| int — номер задачи
|-
|-
|4008 || Группа контактов
|6117 || Поле справочника типа Проект
|  
|  
*equal
*equal
*notequal
*notequal
| int - идентификатор группы, можно получить методом /contact/groups
| int — номер проекта
|-
|-
|4016 || Шаблон контакта
|6003 || Запись входит в группу справочника
|  
|  
*equal
*equal
*notequal
*notequal
| int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates
| int - идентификатор группы справочника
|-
|}
|}



Текущая версия от 13:15, 4 октября 2024

Сложные фильтры в 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 Поле справочника типа Контакт
  • equal
  • notequal
string - номер сотрудника/контакта/группы с префиксом.

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

6109 Поле справочника типа Сотрудник
6110 Поле справочника типа Контрагент
6112 Поле справочника типа Группа, сотрудник, контакт
6113 Поле справочника типа Список сотрудников
  • equal
  • notequal
string - осуществляется фильтр содержит / не содержит
6101 Поле справочника типа Строка
  • equal
  • notequal
  • have
  • nothave
string - осуществляется фильтр равно / не равно / содержит / не содержит
6102 Поле справочника типа Число
  • equal
  • notequal
  • gt
  • lt
int
6105 Поле справочника типа Чекбокс
  • equal
  • notequal
int - 1/0
boolean
6005 Является ли запись архивной
6106 Поле справочника типа Список
  • equal
  • notequal
string
6107 Поле справочника типа Запись справочника
  • equal
  • notequal
int - идентификатор записи
6114 Поле справочника типа Набор записей справочника
  • equal
  • notequal
int — идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой)
6115 Поле справочника типа Задача
  • equal
  • notequal
int — номер задачи
6117 Поле справочника типа Проект
  • equal
  • notequal
int — номер проекта
6003 Запись входит в группу справочника
  • equal
  • notequal
int - идентификатор группы справочника


Перейти