SSRS 2005 订阅更改

SSRS 2005 Subscription changes

好的,这是我的问题及其 SSRS 2005 和 SQL Server 2005/2008

我的任务是重建我们的用户在他们的数据系统上使用的十几个报告。我们只是构建它们,因为每个数据库实例对于我们所有的客户来说都是相同的,我们将报告推送到他们的报告服务器以供使用。

所以修改了很多报告,但是这些报告已经吹走了客户的订阅。因此,每个使用这些报告的用户,可能很多,因为每个人都可以拥有自己的一组参数,必须 运行 手动报告或重新订阅。

我的公司非常想避免这种情况,但我不知道如何更改报告,即使使用与上一份报告相同的参数集,也要保留订阅。

即使我将报告复制到他们的报告服务器并使用相同名称将旧报告替换为新报告。订阅仍然存在,但已修改。

  1. 我正在寻找一种方法来将订阅作为报告的一部分下推,以便他们对订阅的输入最少,以便根据他们的需要进行定制 --或者理想情况下--
  2. 将新版本的报告上传到他们的报告服务器,然后将订阅应用于我放在他们服务器上的最新报告

哪个并不重要,但第二个最好看个人用户如何使用以个人名称作为参数的报告

非常感谢任何能给我指出在我这边管理订阅的方法,或者使我的报告能够在他们的服务器上承担相同名称报告的订阅的人。 - 编辑 - 想放一张更清晰的照片 我有一份报告的原件。用户在他们自己的系统上使用报告。 我对报告的主副本做了一些重大修改,并将其上传到他们的系统。使用与原始报告相同的名称和相同的参数集。 我希望他们的报表服务器上的订阅使用相同的名称查找此报表。 所以 XXX.report 有一个订阅。我在本地将其更改为XXX.report,然后上传到他们的服务器。但是订阅没有同步。

谢谢

我不确定您是如何访问 SSRS 的,但您可以使用以下网络服务方法来下载和上传报告订阅

  1. ListSubscriptions
  2. GetSubscriptionProperties
  3. GetDataDrivenSubscriptionProperties
  4. DeleteSubscription
  5. CreateDataDrivenSubscription
  6. CreateSubscription

使用这些方法,您可以使用 ListSubscriptions 获取报告的订阅。 Subscription.IsDataDriven property will tell you if it's data driven or not. For data driven subscriptions, use GetDataDrivenSubscriptionProperites to get the subscription properties, otherwise use GetSubscriptionProperties. All of those classes are XML serializable so you can save them to disk out of the box using the XmlSerializer.

要重新添加订阅,请使用 DeleteSubscription 逐个删除订阅,然后 CreateSubscriptionCreateDataDrivenSubscription 阅读订阅。

虽然这是一个 hack,因为您应该能够在不中断订阅的情况下修改报告。您应该按照以下内容来帮助诊断问题

  1. Set SSRS logging to verbose for all components
  2. 使用单击一次报表生成器更改报表标题并查看在您单击保存时订阅是否中断
  3. 在 ReportServer 数据库上安装 SQL 探查器 运行 以查看订阅中断时生成的内容 SQL

有一个来自 Jasper Smith 的名为 Reporting Services Scripter 的工具。我认为它应该适合你。

我最后要做的是返回并更改所有输入参数,包括下拉菜单的 sql 内容,恢复到原来的状态。然后使用 SQL 让报告接受新(旧)参数。

感谢您的意见。我接受了 Web 服务答案,因为这是我必须为下一次更新探索的路径。