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

Материал из Planfix
Перейти к: навигация, поиск
(Новая страница: «{{#seo: |title=REST API: Сложные фильтры проектов |titlemode=append |keywords=планфикс, фильтры проектов, апи, api, rest, rest api, сложные фильтры проектов |description=REST API: Сложные фильтры проектов }} Сложные фильтры в REST API ПланФикса применяются в методе «/project/list» при получении списка...»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 1 участника)
Строка 12: Строка 12:




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


<pre>
<pre>
Строка 18: Строка 18:
   "offset": 0,
   "offset": 0,
   "pageSize": 100,
   "pageSize": 100,
   "fields": "directory,parentKey,key,3,5",
   "fields": "id,name,description,3,5",
   "filters": [
   "filters": [
     {
     {
       "type": 6103,
       "type": 5103,
       "field": 3,
       "field": 3,
       "operator": "equal",
       "operator": "equal",
Строка 31: Строка 31:
     },
     },
     {
     {
       "type": 6109,
       "type": 5109,
       "field": 5,
       "field": 5,
       "operator": "equal",
       "operator": "equal",
Строка 105: Строка 105:
|5013 || Дата создания
|5013 || Дата создания
|-
|-
|3106 || Пользовательское поле типа «Контрагент»
|5004 || Автор
|rowspan="5" |
|rowspan="9" |
*equal
*equal
*notequal
*notequal
|rowspan="5" |  
|rowspan="9" |  
string - номер сотрудника/контакта/группы с префиксом.  
string - номер сотрудника/контакта/группы с префиксом.  
Например: “user:1”, “contact:5”, “group:3”
Например: “user:1”, “contact:5”, “group:3”
|-
|-
|3116 || Пользовательское поле типа «Контакт»
|5008 || Клиент-менеджер
|-
|-
|3104 || Пользовательское поле типа «Сотрудник»
|5012 || Аудитор
|-
|-
|3111 || Пользовательское поле типа «Группа, сотрудник, контакт»
|5011 || Исполнитель
|-
|-
|3103 || Пользовательское поле типа «Список сотрудников»
|5108 || Поле проекта типа «Контакт»
|-
|-
|3108 || Пользовательское поле типа «Строка»
|5109 || Поле проекта типа «Сотрудник»
|  
|-
|5110 || Поле проекта типа «Контрагент»
|-
|5112 || Поле проекта типа «Группа, сотрудник, контакт»
|-
|5113 || Поле проекта типа «Список сотрудников»
|-
|5001 || Название проекта
|
*equal  
*equal  
*notequal
*notequal
|string - осуществляется фильтр содержит / не содержит
|  
string - осуществляется фильтр содержит / не содержит
|-
|-
|3109  || Пользовательское поле типа «Число»
|5101 || Поле проекта типа «Строка»
|  
|  
*equal
*notequal
*have
*nothave
| string - осуществляется фильтр равно / не равно / содержит / не содержит
|-
|5007  || Номер проекта
|rowspan="2" |
*equal  
*equal  
*notequal
*notequal
*gt
*gt
*lt
*lt
|int
|rowspan="2" |
int
|-
|-
|3115 || Пользовательское поле типа «Чек-бокс»
|5102 || Поле проекта типа «Число»
|-
|5105  || Поле проекта типа «Чек-бокс»
|  
|  
*equal  
*equal  
Строка 142: Строка 162:
boolean
boolean
|-
|-
|3105 || Пользовательское поле типа «Справочник»
|5106 || Поле проекта типа «Список»
|
*equal
*notequal
|string
|-
|5107  || Поле проекта типа «Запись справочника»
|  
|  
*equal  
*equal  
*notequal  
*notequal  
| int - идентификатор записи
| 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 - номер надпроекта
|}
|}



Текущая версия от 11:54, 27 декабря 2023

Сложные фильтры в 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 - номер надпроекта


Перейти