Всем привет!
Сегодня рассмотрим такой виджет как Конструктор бизнес-логики.
В этой статье расскажу о двух разных режимах работы данного виджета.
Для начала рассмотрим, как работает КБЛ с первым источником из настроек, благодаря которому наши слоты отображаются в зависимости от наличия записей в датасете
Приступим к настройке.
- Подключим датасет в первый источник в виджете и создадим необходимые нам метрики:
-
Далее выберем метрику/измерение в КБЛ по которому мы будем определять наличие слота, в нашем случае это будет поле из датасета «unique_name»
-
Cоздадим название слотов
Важно, имя слота должно быть точно таким же как и значение в датасете по полю которое мы выбрали в метрике(unique_name), тогда слот будет скрываться/отображаться в зависимости от наличия записи в датасете
Порядок слотов в виджете определяется порядком строк в датасете, для этого удобно использовать какое-то поле, с помощью которых мы сможем сортировать контент и регулировать какой слот будет 1-2-3 и т.д.
Так же и с отображением слотов. В нашем случае используется поле «is_enabled»
В нашем датасете используется фильтрация благодаря которой попадают строки только со значением «True». Могут так же использоваться и другие названия колонок и индикации в них(числа, текст итд) Благодаря данной колонке мы сможем регулировать напрямую через датасет отображение/скрытие слота, управляя одним параметром
Рассмотрим на практике:
На нашем небольшом экране попробуем убрать блок «документы». Все 4 элемента лежат у меня в слотах Конструктора бизнес-логики, каждый элемент в своем созданном слоте. Соответственно, мне нужно лишь в датасете исключить запись с документами. Этого можно добиться двумя способами, либо в поле is_enabled проставив в датасете False(тогда запись в принципе не попадет в наш источник, учитывая нашу фильтрацию), либо через настройки СДК проставив там необходимый фильтр
В итоге как мы видим слот исчез, поскольку мы его убрали в источнике в этом и заключается суть этого режима.
Существует и другой режим КБЛ при котором слот определяется через фильтрацию и правила в слотах. Для подготовки к работе добавим на страницу фильтр по кварталам который будет отправлять переменную quart_id и соответственно фильтровать контент в КБЛ. Каждый квартал соответствует своему слоту в конструкторе бизнес-логики. Дашборды – 1 квартал, маркетплейс – 2 квартал итд.
Приступим к настройке Конструктора бизнес-логики
- Для начала необходимо добавить наш датасет в «Источники фильтрации»
-
Далее необходимо либо создать с нуля слоты с любым названием, либо использовать те же наши слоты из 1 источника, тогда кбл будет работать сразу в двух режимах, в нашем случае оставим те же слоты
-
Добавим правила, используя необходимые условия, покажу вам пример создания условия через переменную.
При таких условиях наш слот определяется значением переменной, которая придет в хранилище,
1-4 id кварталов которые отправляет фильтр
- Сохраняемся и проверяем результат
Как мы видим наш КБЛ фильтруется и показывает слот в зависимости от выбранного значения в фильтре, выполняя условия в правилах наших слотов.
В данном примере проводили сравнение с конкретным значением, но существуют и другие варианты:
Также есть возможность сравнивать значение в источнике со значением из переменной, для демонстрации данного функционала добавим поле в датасет со списком пользователей
и фильтр, который будет отправлять имя пользователя в хранилище:
Далее добавим на слот redactor еще одно условие в правило, что если значение переменной “user” есть в нашем датасете(колонка - Пользователь), тогда мы отображаем данный слот, такое условие записывает вот так:
Пользователь in user (x)
при этом предыдущее сравнение с кварталами мы оставим, таким образом проверка будет проходить сразу по двум условиям и слот будет отображаться только если все соблюдены
Как мы видим при фильтрах: 4 квартал и пользователь Alexey, наш слот отображается, поскольку правило выполняется, но как только мы выбираем другого пользователя которого не было в нашем датасете(пример – Konstantin) слот исчезает, т.к. значение переменной user не оказалось в нашем источнике
На этом все, мы рассмотрели несколько вариантов использования КБЛ, но лучше всего функционал виджета понимается на практике, поэтому советую вам самим попробовать его настроить. Спасибо за внимание)