SSRS报告基于事件运行

时间:2014-04-14 16:07:44

标签: events reporting-services schedule

这是用户想要的场景...... ETL通常在凌晨5点完成,并且在成功加载后将一行插入表中。 从早上5点开始,SSRS报告应该查找要插入的行,例如每隔30秒。 当它看到插入了一行并且SSRS报告应该运行时,该报告又向订阅中指定的用户发送电子邮件。

有没有办法在没有SQL -RD的情况下实现这一目标? 请给我一个方向,因为我是MSBI的新手。

此致 Chakrapani M

2 个答案:

答案 0 :(得分:0)

它不是理想的解决方案,但如果您正在运行企业版,则可以设置数据驱动订阅以检查插入的行,如果它存在,则返回电子邮件地址列表 - 使用此返回值填充" TO:"数据驱动订阅中的字段。如果没有数据,则不会返回任何电子邮件地址,订阅只会“失败”#34;

或者,如果您有权访问,只需找到订阅在SSRS SQL主机上创建的作业,并更改它以添加必要的条件逻辑,以便在适当时仅运行订阅。

答案 1 :(得分:0)

使用包含3个任务的SSIS包:

  1. SQL任务 - 单行结果集 - 检查数据是否基于上次运行日期方案,然后更新上次运行日期
  2. SQL任务 - 任务1运行成功" Windows文件共享" SSRS报告(例如以PDF或Excel格式导出)
  3. 电子邮件任务 - 任务2成功后,将文件添加为附件并发送
  4. 将程序包部署并添加到SQL Server作业,计划为30秒。

    或者将延迟(计划)放在包中。即使用For循环容器(带有可选的循环结束计数)并将3个任务转储到其中,在任务1失败时使用额外的延迟任务场景,在任务3成功的早期退出循环。记住设置For的MaximumErrorCount循环到0并且循环中的每个单独任务除了第一个任务FailPackageOnError属性为True之外,以避免在ETL没有结果的情况下调用延迟的故意错误。