Links

Разложения (Values)

Ресурс Values — распределения и подсчет записей в каталоге по выбранным критериям.
Ресурс Values доступен начиная с версии Бипиума 1.7.1. В предыдущих версиях Бипиума значения разложения можно получить через ресурс Widget/Values.

Получить разложение

Запрос
Ответ
URL: /{api url}/catalogs/{catalogId}/values
?value[type]=recordsCount
&axis[type]=field
&axis[value]=2
&recordsFilter[filters][0][fieldId]=12
&recordsFilter[filters][0][value][0]=CURRENT_USER
&limit=100
&offset=0
Метод: GET
Параметры:
  • catalogId (string) — идентификатор каталога
Параметры фильтра (определяют выборку):
  • value[type] (string) — тип подсчитываемого значения
    • recordsCount — количество найденных записей (по умолчанию)
    • field — значение по полю каталога
  • value[value] (string) — идентификатор поля каталога для расчета. Допустимо указывать поля типов: число, прогресс, звезды, статус, набор галочек, выбор, связанный объект.
  • value[subType] (string) — подтип подсчитываемого значения
    • uniqueCount — подсчет уникальных значений (доступно для полей типа связанная запись, сотрудник, текст)
    • timeLeft — время нахождения записей в определенном значении поля (доступно для полей статус, набор галочек, выбор). Например: сколько записи были в определенных статусах.
    • timeLeft — время до момента перехода в в определенное значении поля (доступно для полей статус, набор галочек, выбор). Например: сколько прошло времени до того как записи перешли в определенный статус.
  • valueFn — применяемая функция для подсчета значений
    • '' (пусто) — не применять никакую функцию (для value[type]=recordsCount)
    • count — количество записей (значений)
    • sum — сумма значений
    • max — максимальное значение в группе
    • min — минимальное значение в группе
    • avg — среднее значение в группе (пустые значения не учитываются)
    • avgAll — среднее значение в группе (пустые значения считаются за 0)
  • axis[type] (string) — тип оси для разложения записей:
    • all — без разложения (значение по умолчанию)
    • field — разложение по полю каталога
    • createdTime — разложение по времени создания записи
  • axis[value] (string) — идентификатор поля оси разложения (для axis[type]=field)
  • axis[subType] (string) — тип группировки данных по оси (для полей типа дата)
    • hour — по часам
    • hourOfDay — по часам дня (все дни «схлопываются»)
    • day — по дням
    • dayOfWeek — по дням недели (пн—вс)
    • week — по неделям
    • weekOfYear — по неделям года (все года «схлопываются»)
    • monthOfYear — по месяцам года (все года «схлопываются»)
    • month — по месяцам
    • year — по годам
  • split[type] (string) — тип разделения (ось 2) значений внутри разложения по оси
    • возможные значения аналогичны параметру axis[type]
  • split[value] (string) — идентификатор поля оси 2 (для split[type]=field)
  • split[subType] (string) — тип группировки данных по оси 2 (для полей типа дата)
    • возможные значения аналогичны параметру axis[subType]
  • splitLimit (число) — если по оси2 вариантов разложения много, то берутся не все, а только часть их них, те которые встречаются чаще (по умолчанию 10, максимум 100)
  • sort (string) — тип сортировки полученной выборки. Для разных типов полей значение по умолчанию разное.
    • axis — сортировать по наименованию (порядку) заголовков осей.
      • Для дат — в порядке их следования
      • Для статусов, наборов галочек, выбора — в порядке указания элементов в поле каталога
      • Для текста, связанных записей, сотрудников — по наименованию
    • value — сортировать по величине значений
  • sortType (string) — направление сортировки полученной выборки
    • asc — по алфавиту / в порядке хронологии / в порядке указания в каталоге
    • desc — в обратном порядке
  • recordsType (string) — какие записи учитывать для подсчета значений
    • all — все записи каталога без проверки прав (доступно, если у сотрудника, делающего запрос есть права на просмотр всех записей каталога)
    • available — учитывать только доступные сотруднику записи каталога
  • recordsFilter (object) — фильтры для выборки записей каталога, такие как filter, sort и другие. подробнее в описании параметров получения записей.
  • limit (number) — количество возвращаемых разложений (по умолчанию 30, максимум 1000)
  • offset (number) — смещение получаемой выборки разложения относительно начала, используется для постраничного получения данных с параметром limit
Естественным языком о смысле параметров описано в статье про интерфейс графика.
Ответ: 200 OK (application/json)
Пример с наличием разложения по оси (axis):
[
{
"axis": "Анатолий",
"values": [
{
"value": "7"
}
]
},
{
"axis": "Виктор",
"values": [
{
"value": "4"
}
]
}
]
Пример с наличием разложения по оси (axis) и оси 2 (split):
[
{
"axis": "Анатолий",
"values": [
{
"split": "1"
"value": "3"
},
{
"split": "2"
"value": "4"
}
]
},
{
"axis": "Виктор",
"values": [
{
"split": "2"
"value": "3"
},
{
"split": "3"
"value": "1"
}
]
}
]
Параметры:
  • axis — группа распределения, значение может быть строкой или объектом (в зависимости от оси разложения)
  • values (array of objects) — набор значений
    • split — группа разделения (ось 2), значение может быть строкой или объектом (в зависимости от оси разложения)
    • value (number) — значение в группе (ось) с учетом подгруппы если есть (ось 2)

Получить одно значение разложения

Запрос
Ответ
URL: /{api url}/catalogs/{vatalogId}/values/{axisId}
?value[type]=recordsCount
&axis[type]=field
&axis[value]=2
&recordsFilter[filters][0][fieldId]=12
&recordsFilter[filters][0][value][0]=CURRENT_USER
&limit=100
&offset=0
Метод: GET
Параметры:
  • catalogId (string) — идентификатор каталога
  • axisId (string) — идентификатор разложения по оси (axis)
Параметры фильтра (определяют выборку):
  • аналогичны параметрам запроса на получение полного разложения
Ограничение: Метод вернет значение только, если указанная ось попала в общую выборку по указанным параметрам, включая параметры limit и offset.
Ответ: 200 OK (application/json)
Пример с наличием разложения по оси (axis):
{
"axis": "Анатолий",
"values": [
{
"value": "7"
}
]
}
Пример с наличием разложения по оси (axis) и оси 2 (split):
{
"axis": "Анатолий",
"values": [
{
"split": "1"
"value": "3"
},
{
"split": "2"
"value": "4"
}
]
}
Параметры:
  • axis — группа распределения, значение может быть строкой или объектом (в зависимости от оси разложения)
  • values (array of objects) — набор значений
    • split — группа разделения (ось 2), значение может быть строкой или объектом (в зависимости от оси разложения)
    • value (number) — значение в группе (ось) с учетом подгруппы если есть (ось 2)