В BI Конструкторе можно использовать фильтры по параметрам — Потоки задач и Шаблоны бизнес‑процессов. Они помогают анализировать данные в нужном контексте — например, только по конкретному потоку или по отдельному шаблону бизнес‑процесса.
Фильтры работают с параметрами отчета и автоматически подставляют данные в зависимости от того, откуда он открыт. Например, если отчет открыт из потока «Юридический отдел», фильтр сразу применится и покажет задачи только этой команды.
В статье расскажем, как:
Настроить параметры для отчета в Битрикс24
Перед тем как добавить фильтры, нужно настроить параметры. Они задают связь между отчетом и данными. Например, параметр tasks_flows_flow_id передает идентификатор потока задач, а bworkflow_template_id — идентификатор шаблона бизнес-процесса. Эти параметры можно задать как для новых, так и для существующих отчетов:
- 1. Перейдите в раздел BI Конструктор.
- 2. Чтобы создать отчет, нажмите Новый отчет.
- 3-4. Если надо отредактировать существующий, откройте Меню (≡) > Настройки.
При создании отчета укажите его название, добавьте в группы, в которых он будет отображаться, и задайте нужные параметры.
После добавления параметра можно выбрать, показывать ли отчет в соответствующем разделе. Например, если использовать параметр ID потока — отчет можно будет посмотреть при нажатии на статус потока. Если добавить ID шаблона бизнес-процесса — отчет появится в карточке с протоколом процесса.
После того как указали параметры, их нужно добавить в набор данных. Графики в отчете строятся на основе набора данных, поэтому параметры должны быть включены в запрос. Если параметры не добавить, они не будут работать. Откройте раздел Идентификаторы параметров и запишите коды нужных переменных, чтобы использовать их в наборе данных.
Создать или дополнить набор данных
Если создаете новый отчет параметры можно указать сразу в SQL-запросе.
- 1–2. В конструкторе перейдите в раздел SQL > SQL Lab.
- 3. Выберите схему bitrix24.
- 4. Впишите SQL-запрос и нажмите Выполнить. В запрос нужно добавить шаблон Jinja, чтобы отчет корректно применял значение фильтра. Например, если открыть отчет из протокола бизнес-процесса, Jinja подставит его идентификатор, и отчет покажет только данные по этому процессу. Если открыть отчет отдельно, фильтр не получит идентификатор и выведет все данные.
Как использовать шаблоны Jinja Templates
Если создаете набор данных в первый раз, посмотрите пример запроса.
Пример SQL-запроса для отчета по потокам задач
Мы написали SQL-запрос, чтобы извлечь данные из набора потоков задач (flow). Вы можете скопировать его и посмотреть, как работает выборка. Запрос показывает основные поля потока и поддерживает фильтр по параметру tasks_flows_flow_id.
SELECT
f.id AS "Идентификатор потока",
f.name AS "Название потока",
f.creator_name AS "Имя создателя потока",
f.planned_completion_time AS "Время на выполнение задачи",
f.tasks_ids AS "Задачи в потоке"
FROM flow f
WHERE 1=1
{% if url_param('tasks_flows_flow_id') is not none %}
AND f.id = {{ url_param('tasks_flows_flow_id') }}
{% endif %}
SELECT — определяет, какую информацию нужно извлечь из набора данных. Например, запрос SELECT f.id AS "Идентификатор потока":
- выбирает идентификатор потока
idиз набораflow, - присваивает ему название
идентификатор потока, - выводит результат в отдельную колонку в таблице.
FROM — указывает набор, из которого извлекаются данные. Мы извлекаем из flow — это таблица, которая содержит информацию о потоках задач.
WHERE — фильтрует результаты. Базовое условие 1=1 нужно, чтобы удобно добавлять дополнительные ограничения.
Далее используется шаблон Jinja. Эта часть проверяет, есть ли в отчете параметр tasks_flows_flow_id. Если отчет открыт из потока, Jinja подставляет его идентификатор и выводит только данные по этому потоку. Если отчет открыть напрямую в BI Конструкторе, параметр не передается, и отображаются все данные.
Пример SQL-запроса для отчета по шаблонам бизнес-процессов
Мы написали SQL-запрос, чтобы извлечь данные из трех наборов: заданий бизнес-процессов (bizproc_task), запущенных процессов (bizproc_workflow_state) и шаблонов бизнес-процессов (bizproc_workflow_template). Вы можете скопировать его и посмотреть, как работает выборка. Запрос выводит основную информацию о запущенных бизнес-процессах и поддерживает фильтр по параметру workflow_template_id, чтобы отчет можно было строить по конкретному шаблону процесса.
SELECT
t.created_date AS "Дата создания задания",
t.status_name AS "Статус выполнения задания",
t.user_name AS "Участник задания",
w.started_by_name AS "Пользователь, запустивший процесс",
w.completed AS "Статус завершения процесса",
w.duration AS "Время, затраченное на выполнение",
wt.name AS "Название шаблона"
FROM bizproc_task t
LEFT JOIN bizproc_workflow_state w
ON t.workflow_id = w.id
LEFT JOIN bizproc_workflow_template wt
ON wt.id = w.workflow_template_id
WHERE 1=1
{% if url_param('workflow_template_id') is not none %}
AND wt.id = {{ url_param('workflow_template_id') }}
{% endif %}
ORDER BY t.created_date DESC;
SELECT — определяет, какие данные нужно извлечь из наборов. Например, запрос SELECT t.created_date AS "Дата создания задания":
- выбирает дату создания задания
created_dateиз набораbizproc_task, - присваивает полю название
Дата создания задания, - выводит результат в отдельную колонку в таблице.
FROM и LEFT JOIN — указывают, из каких наборов берутся данные и как они связаны.
bizproc_taskсодержит задания, которые выполняют сотрудники,bizproc_workflow_stateхранит данные о процессе, в рамках которого было создано задание,bizproc_workflow_templateописывает шаблон бизнес-процесса.
LEFT JOIN используется, чтобы показывать все задания, даже если для некоторых нет информации о состоянии или шаблоне.
WHERE — фильтрует результаты. Условие 1=1 не влияет на выборку и нужно, чтобы было проще добавить фильтры.
Далее используется шаблон Jinja. Эта часть проверяет, есть ли в отчете параметр workflow_template_id. Если отчет открыт из карточки протокола бизнес-процесса, Jinja подставляет идентификатор и показывает только связанные данные. Если отчет открыть напрямую в BI Конструкторе, параметр не передается, и отображаются все данные.
Сохраните полученный набор данных как датасет и создайте график для отчета.
Как создать и добавить в отчет график на основе виртуального набора данных
Если у вас уже есть готовый отчет, можно просто отредактировать набор данных и дополнить его нужным параметром. Чтобы добавить параметр, откройте вкладку Датасеты, выберите набор данных и нажмите Редактировать.
Измените SQL-запрос и добавьте параметр в зависимости от того, какой фильтр собираетесь использовать:
- Потоки задач —
WHERE 1=1 {% if url_param('tasks_flows_flow_id') is not none %} AND f.id = {{ url_param('tasks_flows_flow_id') }} {% endif %}. - Шаблоны бизнес-процессов —
WHERE 1=1 {% if url_param('workflow_template_id') is not none %} AND wt.id = {{ url_param('workflow_template_id') }} {% endif %}.
Добавить фильтры и проверить работу отчета
Чтобы добавить фильтры, откройте отчет в режиме редактирования. В панели слева нажмите Добавить/изменить фильтры, укажите нужный тип, название и сохраните настройки.
Проверьте, как работают фильтры. Для этого откройте отчет в разделе, куда он был встроен. Место встройки зависит от выбранных параметров:
Шаблоны бизнес-процессов. Перейдите в раздел Автоматизация > Бизнес-процессы > Процессы. Выберите нужный процесс и во вкладке Протокол откройте отчет.
Потоки задач. Перейдите в раздел Задачи и проекты > Потоки. В колонке Аналитика нажмите на показатель потока и откройте отчет.
Коротко
- Фильтры по параметрам помогают анализировать данные в нужном контексте — например, по конкретному потоку задач или шаблону бизнес-процесса.
- Чтобы использовать фильтры, нужно настроить параметры в отчете и указать раздел, где он будет открываться.
- Если создаете новый отчет — можно добавить параметры сразу в SQL-запрос. Если отчет уже есть — отредактируйте набор данных, чтобы добавить параметры.
- После этого нужно добавить фильтры в отчет, открыть его в Битрикс24 и убедиться, что он показывает данные только по выбранному потоку или процессу.
Рекомендуем прочитать: