在数据驱动订阅中,动态订阅数据是由从外部数据源检索数据的查询或命令提供的。 可以从满足数据驱动订阅处理要求的任何支持数据源中检索订阅数据。 查询或命令语法必须对随报表服务器安装的数据处理扩展插件有效。
数据处理要求
Reporting Services 使用数据处理扩展插件检索订阅数据。 建议的数据源类型包括:
SQL Server 关系数据库
Oracle 数据库
Analysis Services 多维和数据挖掘数据源
XML 数据源
对订阅者数据使用 XML 数据处理扩展插件时,请务必增加订阅中的查询超时设置。 XML 数据处理扩展插件使用毫秒(而不是秒)来表示查询超时值。 如果不增加超时值,订阅可能会因处理时间不足而失败。
配置与订阅数据源的连接时,避免使用无需凭据选项。 使用 XML 数据处理扩展插件在运行时检索订阅数据时,建议使用存储的凭据。
您可能可以使用其他支持的数据源类型,但并不能保证所有的数据源类型都能正常发挥作用。 例如,以下数据源类型不能用于订阅者数据:
SAP Netweaver BI 数据源
报表模型
如果你有要在数据驱动订阅中使用的自定义数据处理扩展插件,则它必须实现 IDbCommand 和 IDataReader 接口。 数据处理扩展插件必须支持仅限架构的查询执行。 此查询用于在设计时检索列元数据,以使用户可以将列映射到订阅定义中的传递选项和报表参数。 仅限架构的查询执行发生在用户定义订阅的初期阶段。
查询要求
创建用于检索订阅数据的查询时,请牢记以下要点:
只能为订阅创建一个查询。
查询必须返回要用于传递选项和指定报表参数的所有值。
报表服务器将为结果集中的每一行创建报表传递。 如果结果集包含三百行,报表服务器将尝试传递三百个报表。
使用订阅者数据库中的变量数据设置投递选项
可以使用订阅服务器数据库中的数据为每个接收者自定义传递选项。 正在使用的传递扩展插件的类型决定了哪些选项可用。 如果使用报表服务器电子邮件传递扩展插件,则查询应包含每个订阅者的电子邮件别名。 如果使用文件共享传递,订阅者数据应包含可用于创建特定于订阅服务器的报表文件或提供传递目标的值。 有关详细信息,请参阅 Reporting Services 中的文件共享传递 和 Reporting Services 中的电子邮件传递。
将参数值从订阅服务器数据库传递到报表
如果要为参数化报表创建数据驱动订阅,则可以使用变量参数值来自定义每个报表的输出。 例如,订阅服务器数据库可能包含雇员标识号、雇用日期、职务和办公地点信息,这些信息可用来筛选报表数据。 如果报表接受基于这些数据或其他可用列数据的参数,则可以将参数映射到相应的列。
将订阅方字段映射到报表参数时,请确保数据类型和列长度相符。 如果数据类型不匹配,则在订阅处理期间将发生错误。 若要详细了解如何在参数化报表中使用订阅服务器数据,请参阅“创建 Data-Driven 订阅”(SSRS 教程)。
修改订阅者数据源
对订阅方数据源进行以下修改将会阻止订阅运行:
删除订阅中引用的列。
修改数据源的表结构。
更改数据类型和其他列属性。
如果执行了上述任何更改,则必须更新订阅。
另请参阅
创建、修改和删除 Data-Driven 订阅
Data-Driven 订阅
订阅和传送(Reporting Services)