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

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 7 промежуточных версий этого же участника)
Строка 19: Строка 19:
     "pageSize": 100,
     "pageSize": 100,
     "fields": "dataTag,key,3,2273",
     "fields": "dataTag,key,3,2273",
     "filters": [{
     "filters": [
        {
             "type": 3101,
             "type": 3101,
             "field": 3,
             "field": 3,
Строка 27: Строка 28:
                 "dateFrom": "15-11-2022",
                 "dateFrom": "15-11-2022",
                 "dateTo": "17-11-2022"
                 "dateTo": "17-11-2022"
            }, {
                "type": 3103,
                "field": 2273,
                "operator": "equal",
                "value": "user:46"
             }
             }
 
        },
        {
            "type": 3103,
            "field": 2273,
            "operator": "equal",
            "value": "user:46"
         }
         }
     ]
     ]
Строка 100: Строка 101:
</pre>
</pre>
|-
|-
|3106 || Пользовательское поле типа «Контакт»
|3106 || Пользовательское поле типа «Контрагент»
|rowspan="4" |
|rowspan="5" |
*equal
*equal
*notequal
*notequal
|rowspan="4" |  
|rowspan="5" |  
string - номер сотрудника/контакта/группы с префиксом.  
string - номер сотрудника/контакта/группы с префиксом.  
Например: “user:1”, “contact:5”, “group:3”
Например: “user:1”, “contact:5”, “group:3”
|-
|3116 || Пользовательское поле типа «Контакт»
|-
|-
|3104 || Пользовательское поле типа «Сотрудник»
|3104 || Пользовательское поле типа «Сотрудник»
Строка 116: Строка 119:
|3108 || Пользовательское поле типа «Строка»  
|3108 || Пользовательское поле типа «Строка»  
|  
|  
*equal  
*equal
*notequal
*notequal
|string - осуществляется фильтр содержит / не содержит
*have
*nothave
|string - осуществляется фильтр равно / не равно / содержит / не содержит
|-
|-
|3109  || Пользовательское поле типа «Число»
|3109  || Пользовательское поле типа «Число»

Текущая версия от 10:44, 8 января 2024

Сложные фильтры в 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
  • have
  • nothave
string - осуществляется фильтр равно / не равно / содержит / не содержит
3109 Пользовательское поле типа «Число»
  • equal
  • notequal
  • gt
  • lt
int
3115 Пользовательское поле типа «Чек-бокс»
  • equal
  • notequal
int - 1 / 0

boolean

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


Перейти