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

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 11 промежуточных версий 2 участников)
Строка 51: Строка 51:
*gt  
*gt  
*lt  
*lt  
| Объект :
| rowspan="2" |
Объект :
<pre>  
<pre>  
"value": {
"value": {
Строка 63: Строка 64:


dateType принимает следующие значения:
dateType принимает следующие значения:
*today - сегодня
*today сегодня
*yesterday - вчера
*yesterday вчера
*tomorrow - завтра
*tomorrow завтра
*thisWeek - текущая неделя
*thisWeek текущая неделя
*lastWeek
*lastWeek
*nextWeek
*nextWeek
Строка 72: Строка 73:
*lastMonth
*lastMonth
*nextMonth
*nextMonth
*last - последние n дней, n передается в dateValue
*last последние n дней, n передается в dateValue
*next - следующие n дней, n передается в dateValue
*next следующие n дней, n передается в dateValue
*in - через n дней, n передается в dateValue
*in через n дней, n передается в dateValue
*otherDate - точная дата, дата передается в формате дд-мм-гггг в dateFrom
*otherDate точная дата, дата передается в формате дд-мм-гггг в dateFrom
*otherRange - точный период, даты передаются в формате дд-мм-гггг в dateFrom и dateTo
*otherRange точный период, даты передаются в формате дд-мм-гггг в dateFrom и dateTo
*otherDate_withTime - точная дата-время, дата передается в формате "дд-мм-гггг чч:мм" в dateFrom
*otherDate_withTime точная дата-время, дата передается в формате "дд-мм-гггг чч:мм" в dateFrom
*otherRange_withTime - точный период с заданным временем, даты передаются в формате "дд-мм-гггг чч:мм" в dateFrom и dateTo
*otherRange_withTime точный период с заданным временем, даты передаются в формате "дд-мм-гггг чч:мм" в dateFrom и dateTo


Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос.
Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос.
Строка 108: Строка 109:
*equal  
*equal  
*notequal  
*notequal  
| rowspan="5" | string - номер сотрудника/контакта/группы с префиксом.  
| rowspan="5" | string номер сотрудника/контакта/группы с префиксом.  
Например: “user:1”, “contact:5”, “group:3”
Например: “user:1”, “contact:5”, “group:3”
|-
|-
Строка 119: Строка 120:
|9113 || Поле сотрудника типа Список сотрудников
|9113 || Поле сотрудника типа Список сотрудников
|-
|-
|6101 || Поле справочника типа Строка
|9006 || ФИО сотрудника (поиск может выполняется по части ФИО)
| rowspan="4" | 
*equal
*notequal
| rowspan="4" | string — осуществляется фильтр содержит / не содержит
|-
|9121 || Имя сотрудника
|-
|9122 || Отчество сотрудника
|-
|9123 || Фамилия сотрудника
|-
|9101 || Поле сотрудника типа Строка
|  
|  
*equal
*equal  
*notequal
*notequal  
| string - осуществляется фильтр содержит / не содержит
*have
*nothave
| string - осуществляется фильтр равно / не равно / содержит / не содержит
|-
|-
|6102 || Поле справочника типа Число
|9008 || Номер сотрудника
|  
| rowspan="2" |
*equal
*equal
*notequal
*notequal
*gt
*gt
*lt
*lt
| int
| rowspan="2" |
int
|-
|-
|6105 || Поле справочника типа Чекбокс
|9102 || Поле сотрудника типа Число
|-
|9105 || Поле сотрудника типа Чекбокс
|  
|  
*equal
*equal
*notequal
*notequal
| int - 1/0 <br> boolean
| int 1/0 <br> boolean
|-
|-
|6106 || Поле справочника типа Список
|9106 || Поле сотрудника типа Список
|  
|  
*equal
*equal
Строка 145: Строка 163:
| string
| string
|-
|-
|6107 || Поле справочника типа Запись справочника
|9107 || Поле сотрудника типа Запись справочника
|  
|  
*equal
*equal
*notequal
*notequal
| int - идентификатор записи
| int идентификатор записи
|-
|-
|6114 || Поле справочника типа Набор записей справочника
|9111 || Пользовательское поле типа Набор значений
|  
|  
*equal
*equal
*notequal
*notequal
| int — идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой)
| string - значение, для условия по нескольким значениям - значения через ; (точку с запятой)
|-
|-
|6115 || Поле справочника типа Задача
|9115 || Поле сотрудника типа Задача
|  
|  
*equal
*equal
Строка 163: Строка 181:
| int — номер задачи
| int — номер задачи
|-
|-
|6117 || Поле справочника типа Проект
|9117 || Поле сотрудника типа Проект
|  
|  
*equal
*equal
*notequal
*notequal
| int — номер проекта
| int — номер проекта
|-
|9001 || Группа сотрудников
|
*equal
*notequal
| int — идентификатор группы
|-
|9002 || Номер телефона сотрудника
| rowspan="3" |
*equal
*notequal
| rowspan="3" |
string — осуществляется фильтр содержит / не содержит
|-
|9004 || Короткий номер сотрудника
|-
|9003 || Внешний email сотрудника
|-
|9005 || Должность сотрудника
|
*equal
*notequal
| string — название должности
|-
|9124 || Язык интерфейса сотрудника
|
*equal
*notequal
| string — код языка, например: "En"
|-
|9125 || Имя пользователя Telegram
|
*equal
*notequal
| string - имя пользователя (username, @username, <nowiki>https://t.me/username</nowiki>)
|-
|9126 || Идентификатор Telegram
|
*equal
*notequal
| int - идентификатор в Telegram
|}
|}


== Перейти ==
== Перейти ==
*[[REST API]]
*[[REST API]]

Текущая версия от 11:46, 16 мая 2024

Сложные фильтры в REST API ПланФикса применяются в методе «/user/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
9103 Поле сотрудника типа Дата
  • 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",
}
9120 Дата рождения сотрудника
9108 Поле сотрудника типа Контакт
  • equal
  • notequal
string — номер сотрудника/контакта/группы с префиксом.

Например: “user:1”, “contact:5”, “group:3”

9109 Поле сотрудника типа Сотрудник
9110 Поле сотрудника типа Контрагент
9112 Поле сотрудника типа Группа, сотрудник, контакт
9113 Поле сотрудника типа Список сотрудников
9006 ФИО сотрудника (поиск может выполняется по части ФИО)
  • equal
  • notequal
string — осуществляется фильтр содержит / не содержит
9121 Имя сотрудника
9122 Отчество сотрудника
9123 Фамилия сотрудника
9101 Поле сотрудника типа Строка
  • equal
  • notequal
  • have
  • nothave
string - осуществляется фильтр равно / не равно / содержит / не содержит
9008 Номер сотрудника
  • equal
  • notequal
  • gt
  • lt

int

9102 Поле сотрудника типа Число
9105 Поле сотрудника типа Чекбокс
  • equal
  • notequal
int — 1/0
boolean
9106 Поле сотрудника типа Список
  • equal
  • notequal
string
9107 Поле сотрудника типа Запись справочника
  • equal
  • notequal
int — идентификатор записи
9111 Пользовательское поле типа Набор значений
  • equal
  • notequal
string - значение, для условия по нескольким значениям - значения через ; (точку с запятой)
9115 Поле сотрудника типа Задача
  • equal
  • notequal
int — номер задачи
9117 Поле сотрудника типа Проект
  • equal
  • notequal
int — номер проекта
9001 Группа сотрудников
  • equal
  • notequal
int — идентификатор группы
9002 Номер телефона сотрудника
  • equal
  • notequal

string — осуществляется фильтр содержит / не содержит

9004 Короткий номер сотрудника
9003 Внешний email сотрудника
9005 Должность сотрудника
  • equal
  • notequal
string — название должности
9124 Язык интерфейса сотрудника
  • equal
  • notequal
string — код языка, например: "En"
9125 Имя пользователя Telegram
  • equal
  • notequal
string - имя пользователя (username, @username, https://t.me/username)
9126 Идентификатор Telegram
  • equal
  • notequal
int - идентификатор в Telegram

Перейти