0
votes

OK this is my question(s) and its SSRS 2005 and SQL Server 2005/2008

I had been tasked with rebuilding a dozen or so reports that our users use on their data systems. We just build them and since every DB instance is schematically the same for all our clients, we push the reports out to their report servers for use.

So modified a great many reports, but the reports have blown away the clients subscriptions. So every user that uses these reports, that can be a great many seeing as how everyone can have their own set of parameters, has to run the reports manually or redo their subscriptions.

My company would very much like to avoid that, but I can not figure out how to change a report, and even with the same parameter set going in as the last report, keep the subscription there.

Even when I copy the report down to their report server and replace the old with the new using same name. The subscription is still there, but it gets modified.

  1. I am looking either for a way to push down a subscription as part of the report, so that they will have minimal input to their subscriptions in order to tailor it to their needs --OR ideally--
  2. Upload a new version of the report to their report server and just have the subscription apply to the newest report that I have put on their server

It doesn't really matter which one but the second is best seeing as how individual users use the reports with individual names as a parameter

Many thanks in advance for anyone that can point me to the way to manage out subscriptions on my side, or enable my reports to assume the subscriptions of same named reports on their server. --edit-- Want to put a clearer picture out there I have a master copy of a report. The users use the report on their own systems. I do some heavy modifications to the master copy of the report, and upload it to their systems. using the same name and same parameter set as the original report. I want the subscriptions on their report server to find this report using the same name. so XXX.report has a subscription. I change it to XXX.report locally, and upload to their servers. The subscriptions are not synching though.

Thanks

3

3 Answers

0
votes

I'm not sure how you're accessing SSRS but you can use the following webservice methods to download and upload report subscriptions

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

Using those methods, you use ListSubscriptions to get a report's subcriptions. The 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.

To readd the subscriptions, use DeleteSubscription to delete the subcriptions one by one and then CreateSubscription or CreateDataDrivenSubscription to readd the subscriptions.

This is a hack though, because you should be able to modify reports without breaking the subscriptions. You should to the following to help diagnose the issue

  1. Set SSRS logging to verbose for all components
  2. Use the click once report builder to change the title of a report and see if the subscriptions break when you click save
  3. Have the SQL profiler running on the ReportServer database to see what SQL is being generated when the subscriptions break
0
votes

there's a tool called Reporting Services Scripter from Jasper Smith. I think it should work for you.

0
votes

What I had to wind up doing was going back and change all the input parameters, including the sql content for the drop downs, back to what they originally were. Then playing with the SQL for the report to accept the new(old) parameters.

Thanks for your input. I accepted the web services answer as that is a path I will have to explore for our next update.