REST API: Сложные фильтры задач: различия между версиями
Материал из Planfix
Artem (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
| (не показано 13 промежуточных версий 2 участников) | |||
| Строка 6: | Строка 6: | ||
}} | }} | ||
Сложные фильтры в [[REST API]] ПланФикса применяются в методе «/task/list» при получении списка задач. Фильтры задач задаются следующим набором параметров: | Сложные фильтры в [[REST API]] ПланФикса применяются в методе «/task/list» при получении списка задач. Фильтры задач задаются следующим набором параметров: | ||
*'''type''' — числовой идентификатор типа фильтра. Он определяется типом поля, по которому выполняется отбор в фильтре | *'''type''' — числовой идентификатор типа фильтра. Он определяется типом поля, по которому выполняется отбор в фильтре. Колонка «Тип» в таблице ниже. | ||
*'''operator''' — оператор фильтра, одно из значений из списка (equal, notequal, gt, lt), у разных фильтров могут быть разные допустимые операторы. | *'''operator''' — оператор фильтра, одно из значений из списка (equal, notequal, gt, lt), у разных фильтров могут быть разные допустимые операторы, для полей типа «Дата» можно также использовать операторы gtAndEqual, ltAndEqual. | ||
*'''value''' — значение фильтра, может быть строкой, числом или сложным объектом, в зависимости от типа фильтра. | *'''value''' — значение фильтра, может быть строкой, числом или сложным объектом, в зависимости от типа фильтра. | ||
*'''field''' — идентификатор пользовательского поля, для фильтров по пользовательским полям. | *'''field''' — идентификатор пользовательского поля, для фильтров по пользовательским полям. | ||
*'''subfilter''' — вложенный фильтр для фильтрации по значениям полей записи аналитик. | |||
<pre> | <pre> | ||
| Строка 125: | Строка 126: | ||
|- | |- | ||
|1 || Постановщик | |1 || Постановщик | ||
| rowspan=" | | rowspan="11" | | ||
*equal | *equal | ||
*notequal | *notequal | ||
| rowspan=" | | rowspan="11" | string - номер сотрудника/контакта/группы с префиксом. | ||
Например: “user:1”, “contact:5”, “group:3” | Например: “user:1”, “contact:5”, “group:3” | ||
|- | |- | ||
|2 || Исполнитель | |2 || Исполнитель | ||
|- | |||
|97 || Исполнитель персонально (без учета групп, в которые он входит) | |||
|- | |- | ||
|39 || Участник | |39 || Участник | ||
| Строка 186: | Строка 189: | ||
|- | |- | ||
|8 || Название задачи | |8 || Название задачи | ||
| | |||
*equal | *equal | ||
*notequal | *notequal | ||
| string - осуществляется фильтр содержит / не содержит | |||
|- | |- | ||
|101 || Пользовательское поле типа Строка | |101 || Пользовательское поле типа Строка | ||
| | |||
*equal | |||
*notequal | |||
*have | |||
*nothave | |||
| string - осуществляется фильтр равно / не равно / содержит / не содержит | |||
|- | |- | ||
|102 || Пользовательское поле типа Число | |102 || Пользовательское поле типа Число | ||
| Строка 214: | Строка 223: | ||
| string | | string | ||
|- | |- | ||
|107 || Пользовательское поле типа | |107 || Пользовательское поле типа Запись справочника | ||
| | | | ||
*equal | *equal | ||
| Строка 225: | Строка 234: | ||
*notequal | *notequal | ||
| int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) | | int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) | ||
|- | |||
|111 || Пользовательское поле типа Набор значений | |||
| | |||
*equal | |||
*notequal | |||
| string - значение, для условия по нескольким значениям - значения через ; (точку с запятой) | |||
|- | |- | ||
|152 || Содержит значение в пользовательском поле | |152 || Содержит значение в пользовательском поле | ||
| Строка 256: | Строка 271: | ||
*equal | *equal | ||
*notequal | *notequal | ||
| rowspan="2"| int - номер задачи | | rowspan="2"| int - номер задачи или массив номеров задач для условия по нескольким номерам (ИЛИ) | ||
|- | |- | ||
|115 || Пользовательское поле типа Задача | |115 || Пользовательское поле типа Задача | ||
| Строка 266: | Строка 281: | ||
|int - номер проекта | |int - номер проекта | ||
|- | |- | ||
|51 || Шаблон | |51 || Шаблон или Объект | ||
| | | | ||
*equal | *equal | ||
*notequal | *notequal | ||
| int - номер шаблона | | int - номер шаблона/объекта или массив номеров шаблонов/объектов для условия по нескольким шаблонам/объектам (ИЛИ) | ||
|- | |- | ||
|5 || Проект | |5 || Проект | ||
| Строка 285: | Строка 300: | ||
|- | |- | ||
|7 || Контрагент | |7 || Контрагент | ||
| | | rowspan="2"| | ||
*equal | *equal | ||
*notequal | *notequal | ||
| int - номер контрагента | | rowspan="2"| int - номер контрагента | ||
string - номер контрагента с префиксом, пример: “contact:1” | string - номер контрагента с префиксом, пример: “contact:1” | ||
|- | |||
|110 || Пользовательское поле Контрагент | |||
|- | |- | ||
|24 || Процесс | |24 || Процесс | ||
| Строка 302: | Строка 319: | ||
*notequal | *notequal | ||
| int - номер надзадачи | | int - номер надзадачи | ||
|- | |||
|9 || Срочность | |||
| | |||
*equal | |||
*notequal | |||
| string - Urgent или NotUrgent | |||
|- | |||
|93 || Значение поля записи аналитики | |||
| | |||
(в зависимости от типа поля) | |||
*equal | |||
*notequal | |||
*gt | |||
*lt | |||
*have | |||
*nothave | |||
| Значение поля аналитики по которому выполняется фильтрация, дополнительно в структуре фильтра надо передать поле subfilter, пример для фильтра поля аналитики типа Строка: | |||
<pre> | |||
{ | |||
"offset": 0, | |||
"pageSize": 100, | |||
"filters": [ | |||
{ | |||
"type": 93, | |||
"operator": "equal", | |||
"value": "Test value", | |||
"subfilter": { | |||
"dataTagId": 6, | |||
"filter": { | |||
"type": 3108, | |||
"field": 20 | |||
} | |||
} | |||
} | |||
], | |||
"fields": "id,name,dataTags" | |||
} | |||
</pre> | |||
где: | |||
*dataTagId — идентификатор аналитики. | |||
*filter — объект фильтра по этой аналитике. | |||
*type — тип фильтра, в данном случае сложный фильтр аналитики по полю типа Строка. | |||
*field — идентификатор поля аналитики, по которому выполняется фильтр. | |||
|} | |} | ||
== Перейти == | == Перейти == | ||
*[[REST API]] | *[[REST API]] | ||
Текущая версия от 09:17, 4 июня 2025
Сложные фильтры в REST API ПланФикса применяются в методе «/task/list» при получении списка задач. Фильтры задач задаются следующим набором параметров:
- type — числовой идентификатор типа фильтра. Он определяется типом поля, по которому выполняется отбор в фильтре. Колонка «Тип» в таблице ниже.
- operator — оператор фильтра, одно из значений из списка (equal, notequal, gt, lt), у разных фильтров могут быть разные допустимые операторы, для полей типа «Дата» можно также использовать операторы gtAndEqual, ltAndEqual.
- value — значение фильтра, может быть строкой, числом или сложным объектом, в зависимости от типа фильтра.
- field — идентификатор пользовательского поля, для фильтров по пользовательским полям.
- subfilter — вложенный фильтр для фильтрации по значениям полей записи аналитик.
{
"type": 12,
"operator": "equal",
"value": {
"dateType": "otherDate",
"dateValue": "22-03-2022"
}
}
Пример запроса получения списка задач с передачей нескольких фильтров (используется логика И):
{
"fields": "name",
"filters": [{
"type": 2,
"operator": "equal",
"value": "user:5"
},
{
"type": 2,
"operator": "equal",
"value": "contact:7"
},
{
"type": 2,
"operator": "equal",
"value": "group:8"
}
]
}
| Тип | Название | Операторы | Формат value |
|---|---|---|---|
| 12 | Дата создания |
|
Объект :
"value": {
"dateType": string,
"dateValue": string,
"dateFrom": string,
"dateTo": string
}
dateType принимает следующие значения:
Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос. Примеры: "value": {
"dateType": "thisWeek"
}
"value": {
"dateType": "otherRange",
"dateFrom": "20-03-2022",
"dateTo": "22-03-2022"
}
"value": {
"dateType": "otherDate_withTime",
"dateFrom": "20-03-2022 12:00",
}
|
| 13 | Дата планируемого начала | ||
| 14 | Дата планируемого завершения | ||
| 21 | Дата последней активности (последнего добавленного комментария) | ||
| 19 | Дата фактического завершения | ||
| 20 | Дата выполнения | ||
| 38 | Дата последнего изменения | ||
| 79 | Дата последнего изменения или комментария | ||
| 103 | Пользовательское поле типа Дата | ||
| 1 | Постановщик |
|
string - номер сотрудника/контакта/группы с префиксом.
Например: “user:1”, “contact:5”, “group:3” |
| 2 | Исполнитель | ||
| 97 | Исполнитель персонально (без учета групп, в которые он входит) | ||
| 39 | Участник | ||
| 3 | Аудитор задачи или проекта | ||
| 59 | Аудитор проекта | ||
| 60 | Аудитор задачи | ||
| 108 | Пользовательское поле типа Контакт | ||
| 109 | Пользовательское поле типа Сотрудник | ||
| 112 | Пользовательское поле типа Группа, сотрудник, контакт | ||
| 113 | Пользовательское поле типа Список сотрудников | ||
| 22 | Без даты начала |
|
int - 1
boolean - true |
| 23 | Без даты завершения | ||
| 25 | С датой начала | ||
| 26 | С датой завершения | ||
| 16 | Повторяющаяся | ||
| 28 | Не повторяющаяся | ||
| 17 | Просроченная | ||
| 29 | Не просроченная | ||
| 33 | Без исполнителей | ||
| 41 | Без участников | ||
| 34 | Постановщик - сотрудник | ||
| 35 | Постановщик - контакт | ||
| 71 | Исполнитель - сотрудник | ||
| 69 | Исполнитель - контакт | ||
| 72 | Участник - сотрудник | ||
| 70 | Участник - контакт | ||
| 8 | Название задачи |
|
string - осуществляется фильтр содержит / не содержит |
| 101 | Пользовательское поле типа Строка |
|
string - осуществляется фильтр равно / не равно / содержит / не содержит |
| 102 | Пользовательское поле типа Число |
|
int |
| 105 | Пользовательское поле типа Чек-бокс |
|
int - 1 / 0
boolean |
| 106 | Пользовательское поле типа Список |
|
string |
| 107 | Пользовательское поле типа Запись справочника |
|
int - идентификатор записи |
| 114 | Пользовательское поле типа Набор записей справочника |
|
int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) |
| 111 | Пользовательское поле типа Набор значений |
|
string - значение, для условия по нескольким значениям - значения через ; (точку с запятой) |
| 152 | Содержит значение в пользовательском поле |
|
int - идентификатор поля |
| 153 | Не содержит значение в пользовательском поле |
|
int - идентификатор поля |
| 11 | Содержит аналитику |
|
int - идентификатор аналитики |
| 18 | Не содержит аналитику |
|
int - идентификатор аналитики |
| 73 | Непосредственная надзадача |
|
int - номер надзадачи |
| 57 | Номер задачи |
|
int - номер задачи или массив номеров задач для условия по нескольким номерам (ИЛИ) |
| 115 | Пользовательское поле типа Задача | ||
| 117 | Пользовательское поле типа Проект |
|
int - номер проекта |
| 51 | Шаблон или Объект |
|
int - номер шаблона/объекта или массив номеров шаблонов/объектов для условия по нескольким шаблонам/объектам (ИЛИ) |
| 5 | Проект |
|
int - номер проекта |
| 10 | Статус |
|
int - идентификатор статуса или массив идентификаторов статусов для условия по нескольким статусам (ИЛИ) |
| 7 | Контрагент |
|
int - номер контрагента
string - номер контрагента с префиксом, пример: “contact:1” |
| 110 | Пользовательское поле Контрагент | ||
| 24 | Процесс |
|
int - идентификатор процесса |
| 307 | Дерево подзадач |
|
int - номер надзадачи |
| 9 | Срочность |
|
string - Urgent или NotUrgent |
| 93 | Значение поля записи аналитики |
(в зависимости от типа поля)
|
Значение поля аналитики по которому выполняется фильтрация, дополнительно в структуре фильтра надо передать поле subfilter, пример для фильтра поля аналитики типа Строка:
{
"offset": 0,
"pageSize": 100,
"filters": [
{
"type": 93,
"operator": "equal",
"value": "Test value",
"subfilter": {
"dataTagId": 6,
"filter": {
"type": 3108,
"field": 20
}
}
}
],
"fields": "id,name,dataTags"
}
где:
|