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

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 13 промежуточных версий этого же участника)
Строка 11: Строка 11:
*'''field''' — идентификатор пользовательского поля аналитики, по которому выполняется фильтр.
*'''field''' — идентификатор пользовательского поля аналитики, по которому выполняется фильтр.


<pre>
{
    "type": 12,
    "operator": "equal",
    "value": {
        "dateType": "otherDate",
        "dateValue": "01-07-2022"
    }
}
</pre>


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


<pre>
<pre>
{
{
  "fields": "name",
    "offset": 0,
  "filters": [{
    "pageSize": 100,
        "type": 4223,
    "fields": "dataTag,key,3,2273",
        "operator": "equal",
    "filters": [
        "value": {
        {
"dateType": "otherDate",
            "type": 3101,
"dateValue": "01-12-1990"
            "field": 3,
}
            "operator": "equal",
    },
            "value": {
    {
                "dateType": "otherRange",
        "type": 1,
                "dateFrom": "15-11-2022",
        "operator": "equal",
                "dateTo": "17-11-2022"
        "value": "user:5"
            }
    }
        },
  ]
        {
            "type": 3103,
            "field": 2273,
            "operator": "equal",
            "value": "user:46"
        }
    ]
}
}
</pre>
</pre>
Строка 106: Строка 101:
</pre>
</pre>
|-
|-
|}
|3106 || Пользовательское поле типа «Контрагент»
 
|rowspan="5" |
 
*equal
{| class="wikitable" style="margin-top: 1em; width:100%"
*notequal
!width="40"|Тип !!width="200"| Название !! Операторы !! Формат value
|rowspan="5" |  
string - номер сотрудника/контакта/группы с префиксом.
Например: “user:1”, “contact:5”, “group:3”
|-
|-
|3106 || Пользовательское поле типа «Контакт»  
|3116 || Пользовательское поле типа «Контакт»
|-
|-
|3104 || Пользовательское поле типа «Сотрудник»
|3104 || Пользовательское поле типа «Сотрудник»
Строка 119: Строка 116:
|-
|-
|3103 || Пользовательское поле типа «Список сотрудников»  
|3103 || Пользовательское поле типа «Список сотрудников»  
|-
|rowspan="8" | 
*equal
*notequal
|-
|rowspan="8" | string - номер сотрудника/контакта/группы с префиксом.
Например: “user:1”, “contact:5”, “group:3”
|-
|}
{| class="wikitable" style="margin-top: 1em; width:100%"
!width="40"|Тип !!width="200"| Название !! Операторы !! Формат value
|-
|-
|3108 || Пользовательское поле типа «Строка»  
|3108 || Пользовательское поле типа «Строка»  
|  
|  
*equal  
*equal
*notequal
*notequal
|string - осуществляется фильтр содержит / не содержит
*have
*nothave
|string - осуществляется фильтр равно / не равно / содержит / не содержит
|-
|-
|3109  || Пользовательское поле типа «Число»
|3109  || Пользовательское поле типа «Число»
Строка 162: Строка 145:
*notequal  
*notequal  
| int - идентификатор записи
| int - идентификатор записи
|-
|}
|}



Текущая версия от 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 - идентификатор записи


Перейти