SSRS 2005订阅更改

时间:2015-02-13 21:03:23

标签: sql-server-2005 reporting-services subscriptions

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

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

所以修改了很多报告,但报告已经吹走了客户订阅。因此,每个使用这些报告的用户都可以手动运行报告或重做他们的订阅,这可以让很多人看到每个人都可以拥有自己的参数集。

我的公司非常希望避免这种情况,但我无法弄清楚如何更改报告,即使使用与上一次报告相同的参数设置,也要保留订阅。

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

  1. 我正在寻找一种方法来推送订阅作为报告的一部分,以便他们对订阅的输入最少,以便根据他们的需求进行定制 - 理想情况下 -
  2. 将新版本的报告上传到他们的报告服务器,只需将订阅应用于我在其服务器上放置的最新报告
  3. 哪一个真的不重要,但第二个最好看的是个人用户如何使用个人名称作为参数的报告

    非常感谢任何可以指导我管理订阅的方式,或者让我的报告在其服务器上承担相同命名报告的订阅。 - 编辑 - 想要把更清晰的图片放在那里 我有一份报告的主副本。用户在自己的系统上使用该报告。 我对报告的主副本进行了一些重大修改,并将其上传到他们的系统。使用与原始报告相同的名称和相同的参数集。 我希望他们的报表服务器上的订阅使用相同的名称查找此报表。 所以XXX.report有订阅。我在本地将其更改为XXX.report,并上传到他们的服务器。订阅不是同步。

    由于

3 个答案:

答案 0 :(得分:0)

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

  1. ListSubscriptions
  2. GetSubscriptionProperties
  3. GetDataDrivenSubscriptionProperties
  4. DeleteSubscription
  5. CreateDataDrivenSubscription
  6. CreateSubscription
  7. 使用这些方法,您可以使用 ListSubscriptions 来获取报告的子订阅。 Subscription.IsDataDriven属性会告诉您它是否是数据驱动的。对于数据驱动订阅,请使用 GetDataDrivenSubscriptionProperites 获取订阅属性,否则使用 GetSubscriptionProperties 。所有这些类都是XML可序列化的,因此您可以使用XmlSerializer将它们保存到磁盘中。

    要阅读订阅,请使用 DeleteSubscription 逐个删除订阅,然后 CreateSubscription CreateDataDrivenSubscription 以读取订阅。

    这是一个黑客攻击,因为您应该能够在不中断订阅的情况下修改报表。您应该执行以下操作来帮助诊断问题

    1. Set SSRS logging to verbose for all components
    2. 使用“单击一次”报告构建器更改报告的标题,并在单击“保存”时查看订阅是否中断
    3. 在ReportServer数据库上运行SQL事件探查器,以查看订阅中断时生成的SQL

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我最近要做的就是返回并将所有输入参数(包括下拉列表的sql内容)更改回原来的状态。然后使用SQL为报告接受新的(旧)参数。

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