订阅处理

本主题介绍了有关订阅处理、所传递报表的特点以及触发订阅的信息。

订阅处理概述

Reporting Services 中包含计划和传递处理器,该处理器提供计划报表和向用户传递报表的功能。报表服务器持续对它所监视的事件作出响应。当发生与为某个订阅定义的条件相符的事件后,报表服务器将读取该订阅,以确定如何处理和传递报表。报表服务器还将请求在订阅中指定的传递扩展插件。在运行该传递扩展插件后,报表服务器将从订阅提取传递信息,再将这些信息传递给该传递扩展插件进行处理。

该传递扩展插件将以在该订阅中定义的格式呈现报表,再将报表或通知传递到指定的目标。如果不能传递报表,则将在报表服务器日志文件中记录一个条目。如果您希望支持重试操作,则可以对报表服务器进行配置,使其在第一次传递尝试失败后重新尝试。

处理标准订阅

标准订阅可以生成报表的一个实例。报表将传递到一个共享文件夹或在订阅中指定的电子邮件地址。报表的布局和数据不发生更改。如果报表使用参数,在处理标准订阅时报表中的每个参数都将使用单一的值。

处理数据驱动订阅

数据驱动订阅可以生成可传递到多个目标的许多报表实例。报表布局不发生改变,但如果参数值是从订阅服务器结果集传入的,报表中的数据可能会有所差异。如果值是从行集传入的,则影响报表呈现方式的传递选项,以及确定是将报表附加在电子邮件中还是链接到电子邮件中的传递选项会因订阅服务器而异。

数据驱动订阅可以生成大量的传递。报表服务器会为从订阅查询返回的行集中的每一行创建一个传递。

报表传递的特点

通过标准订阅传递的报表通常呈现为静态报表。这些报表或基于最新的报表执行快照,或生成为静态报表的形式以完成传递。如果在按需运行报表的订阅中选择**“包括链接”**选项,则当您单击相应的超链接时,报表服务器将运行该报表。

注意注意

通过 URL 传递的报表将与报表服务器保持连接,并且可以在两次查看之间进行更新或删除。您为订阅选择的传递选项决定了是将报表以 URL 形式进行传递,还是将其嵌入到电子邮件正文中进行传递,或是作为附件发送。

在处理订阅时,可能会重新生成通过数据驱动订阅传递的报表。报表服务器不会锁定报表的特定实例或其数据集来完成数据驱动订阅。如果订阅针对不同的订阅者使用不同的参数值,则报表服务器将重新生成报表,以得到所需的结果。如果在创建和传递第一个报表副本之后更新了基础数据,则在此过程中稍后获得报表的用户可能会看到基于不同结果集的数据。您可使用以快照形式运行的报表,以确保向所有订阅者发送同一个报表实例。然而,如果在处理订阅过程中对快照进行了计划的更新,用户仍然可能会在其报表中获得不同的数据。

触发订阅处理

报表服务器使用两种事件来触发订阅处理:一种是在计划中指定的时间驱动事件,另一种是快照更新事件。

时间驱动的触发器使用报表特定的计划或共享计划来指定订阅何时运行。对于按需运行的报表和缓存报表而言,计划是唯一的触发选项。

快照更新事件使用报表快照的计划更新来触发订阅。您可以根据在报表中设置的报表执行属性,定义当使用新数据更新报表时触发的订阅。