Конечно, многие знают, что можно отправлять оповещения по электронной почте с помощью QlikView (функционал Alerts). Но как прикрепить данные при рассылке оповещений? Способ решения этой задачи ниже.

Подготовка к рассылке оповещений

Оповещения QlikView – это e-mail-ы, которые автоматически отправляются либо через десктопную, либо серверную версию QlikView, когда выполняется заданное условие. Тема письма, сообщение и получатели настраиваются через настройку выражений.

Для того чтобы отправить сообщение из QlikView Desktop, нужно настроить SMTP-сервер. Для этого открываем Параметры->Параметры пользователя (Settings->User Preferences), а затем выбираем вкладку Параметры почты (Mail). Вводите здесь свои данные и щелкаете кнопку OK.

Оповещения в QlikView

Если вам нужно настроить оповещения в QlikView Server, это, конечно, делается через консоль QMC. Используются те же самые параметры SMTP, что и для уведомлений.

Отправка стандартного оповещения

Оповещения настраиваются в QlikView Desktop во вкладке Инструменты –> Оповещения (Tools -> Alerts, или CTRL+ALT+A). Окно настроек выглядит так:

Оповещения в QlikView

Жмем кнопку Добавить (Add) и вводим описание оповещения, тему письма, сообщение и получателей сообщения через точку с запятой.

Оповещения в QlikView

Основное условие рассылки – сравнение суммы продаж за день по отношению к фиксированному целевому значению в 10 000.

Для создания такого оповещения у нас создана Закладка (Bookmark), которая содержит выборку по полю Дата =Date= today()-1) и хранится как часть оповещения. Если значение в 10.000 достигнуто – письмо-уведомление направляется получателю(-ям).

Мы можем также настроить отправку оповещения не в соответствии с выполнением условия, а по проверке достигнутых значений. Есть два варианта проверки – «On Post Reload» (на сервере) или «On Open». Задержка в этом случае определяет сколько дней или частей дня (если установите дробное значение) условие должно выполняться, прежде чем оповещение отправится.

Уровень триггеров используется чаще всего. Когда оповещение отправляется, текст письма кэшируется. Если сообщение меняется, то оповещение рассылается только при изменении текста письма. Вы можете также настроить рассылку каждый раз при выполнении какого-то действия (например, при каждой перезагрузке) или только один раз, когда условие выполнено.

Рекомендую вам не использовать всплывающие окна (Show Popup). Каждый раз оно будет отвлекать от работы. Еще одна опция, с которой можно поиграть при настройке оповещений – настройки режима событий – интерактивный или пакетный – для десктопа и QMC.

Ну, на этом можно было бы и закончить – в настройке оповещений многие останавливаются на этом уровне. Но мы пойдем дальше!

Использование функции AGGR для фильтрации исключений

Пример выше проверяет все загружаемые данные в приложение и сравнивает их с единственным фиксированным значением. Часто случается так, что вам нужно проверить условие относительно каждой величины в каждом измерении или комбинации измерений. Тогда на помощь вам спешит Agggrrrr.

Вдруг вы раньше не использовали Aggr – быстро вам расскажу вам, к чем эту функция и как она работает. Функция строит виртуальную прямую таблицу в памяти с одним и более измерениями. Выражения могут выполняться внутри этой виртуальной таблицы, при этом выражения рассчитываться для каждой строки. Это виртуальная таблица измерений, а выражение в свою очередь может использоваться как вычисляемое измерение или, как в нашем случае, иметь дальнейший уровень агрегирования.

В моем примере, я решил создать оповещения с учетом расчетов продаж по отношению к целевому значению для каждой даты. В случае если в любой из дней цель была не достигнута, отправляется оповещение.

Итак, выражение имеет такой вид:

Часть формулы с «If» принимает истинное значение и возвращает 1, если цель по продажам не достигнута, и ложное значение и возвращает 0, если целевое значение достигнуто. Часть функции AGGR дает возможность делать расчет на каждую дату. В этом случае могут использоваться и множественные измерения. Выражение Sum подводит итоги расчета.

Такой расчет дней теперь может применяться и для условия оповещений (поле Condition) и в качестве текста письма (поле Text).

Создаем одну строку для Оповещений

Встроенные оповещения QlikView могут отправлять только текст. Более сложные письма, включая рисунки, вложения и таблицы, могут отправляться при помощи надстройки QlikView NPrinting, но, все-таки, некоторые данные могут быть отправлены при помощи стандартных инструментов QlikView.

Для этого нужно создать строку, которая содержит необходимую информацию. Опять пользуемся функцией AGGR, поскольку мы будем рассматривать каждое измерение отдельно. Выражение возвращает нам результат в формате текста, поэтому используем CONCAT, а не Sum. CONCAT объединяет все значения.

Так, для полного списка дат, где достигнута цель, нам нужно записать такое выражение:

Так мы получили список с каждой датой, разделенный «|».

Далее углубляем наше выражение и объясняем получателю письма, какие цифры он видит при получении письма по триггеру:

НА ЗАМЕТКУ! Чтобы разделить значения в итоге, мы используем в выражении одинарные кавычки. Далее мы указываем отклонение и дельта на конкретные даты.

Оповещения в QlikView

Прежде чем делать рассылку, смотрим, что получилось из нашей формулы в текстовом объекте листа (чтобы проверить отображение). Также некоторые части текста (которые варьируются) могут быть введены с помощью переменных.

Собственные оповещения QlikView: Последние штрихи

Собираем все вместе и получаем вот что:

Оповещения в QlikView

НА ЗАМЕТКУ! Описание создается также как в обычном оповещении QlikView. Условие же имеет функцию AGGR. В тело письма встраиваем формулу строки, которая появится в сообщении по триггеру. Тема письма также генерируется на основе расчета.

Скачать пример

Оповещения QlikView