Отчет SSRS для запуска на основе события

Вот сценарий, который хочет пользователь... ETL обычно завершается в 5 утра, и после успешной загрузки в таблицу вставляется строка. Начиная с 5:00 отчет SSRS должен искать эту строку для вставки, скажем, каждые 30 секунд. Когда он увидит, что строка вставлена, должен быть запущен отчет SSRS, который, в свою очередь, отправляет электронное письмо пользователям, указанным в подписке.

Есть ли способ добиться этого без SQL -RD? Пожалуйста, дайте мне направление, так как я новичок в MSBI.

С уважением, Чакрапани М.


person user3530529    schedule 14.04.2014    source источник
comment
stackoverflow.com/questions/20330071/   -  person SQLMason    schedule 14.04.2014


Ответы (2)


Это не идеальное решение, но если вы используете версию Enterprise, вы можете настроить подписку на основе данных для проверки вставленной строки и, если она присутствует, вернуть список адресов электронной почты — используйте это возвращаемое значение для заполнения " TO:» в управляемой данными подписке. Если данных нет, адреса электронной почты не будут возвращены, и подписка просто «не пройдет».

В качестве альтернативы, если у вас есть доступ к этому, просто найдите задание, которое подписка создает на узле SQL SSRS, и измените его, добавив необходимую условную логику, чтобы подписка выполнялась только при необходимости.

person kyzen    schedule 14.04.2014

Используйте пакет SSIS с 3 задачами:

  1. Задача SQL — набор результатов с одной строкой — проверьте, основаны ли данные на сценарии даты последнего запуска, а затем обновите дату последнего запуска.
  2. Задача SQL — при успешном выполнении задачи 1 запустите отчет SSRS «Файловый ресурс Windows» (скажем, экспортируйте в формат PDF или Excel)
  3. Задача EMAIL — при успешном выполнении задачи 2 добавить файл в качестве вложения и отправить

Разверните и добавьте пакет в задание SQL Server, запланированное на 30 секунд.

В качестве альтернативы поместите задержку (расписание) в пакет. т.е. используйте контейнер цикла For (с необязательным счетчиком окончания цикла) и выгрузите в него 3 задачи с дополнительным сценарием задачи задержки при сбое задачи 1 и преждевременным выходом из цикла при успешном выполнении задачи 3. Не забудьте установить MaximumErrorCount для For Цикл на 0 и каждую отдельную задачу в цикле, кроме свойства FailPackageOnError первой задачи, на True, чтобы избежать преднамеренной ошибки для вызова задержки, если нет результата от ETL.

person Glen    schedule 07.07.2017