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

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

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

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


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

{
    "offset": 0,
    "pageSize": 100,
    "fields": "dataTag,key,3,2273",
    "filters": [{
            "type": 3101,
            "field": 3,
            "operator": "equal",
            "value": {
                "dateType": "otherRange",
                "dateFrom": "15-11-2022",
                "dateTo": "17-11-2022"
            }, {
                "type": 3103,
                "field": 2273,
                "operator": "equal",
                "value": "user:46"
            }

        }
    ]
}


Тип Название Операторы Формат value
3101 Пользовательское поле типа «Дата»
  • 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": "02-07-2022",
    "dateTo": "06-07-2022"
}
"value": {
    "dateType": "otherDate_withTime",
    "dateFrom": "30-06-2022 12:00",
}
3106 Пользовательское поле типа «Контрагент»
  • equal
  • notequal

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

3116 Пользовательское поле типа «Контакт»
3104 Пользовательское поле типа «Сотрудник»
3111 Пользовательское поле типа «Группа, сотрудник, контакт»
3103 Пользовательское поле типа «Список сотрудников»
3108 Пользовательское поле типа «Строка»
  • equal
  • notequal
string - осуществляется фильтр содержит / не содержит
3109 Пользовательское поле типа «Число»
  • equal
  • notequal
  • gt
  • lt
int
3115 Пользовательское поле типа «Чек-бокс»
  • equal
  • notequal
int - 1 / 0

boolean

3105 Пользовательское поле типа «Справочник»
  • equal
  • notequal
int - идентификатор записи


Перейти