views:

287

answers:

2

We're setting up a reporting service for a website, and right now I'm leaning towards using SSRS...but I'm trying to make sure it will really do everything we need. One thing we need is the ability for people, through the website, to create a report and have that report automatically sent out at various intervals. Sounds very much like SSRS Standard Report subscription.

But so far in MSDN, I've only been able to find how to subscribe to reports via tools like "Report Manager", "Management Studio". Obviously, if a user is going to subscribe via a website, they're not going to have access to these...I need to be able to do this via an API. Haven't been able to find a reference for this though. Does it exist?

+1  A: 

Use data driven subscriptions: http://msdn.microsoft.com/en-us/library/ms169673.aspx

They're quite simple to setup, and all you need to do in your app is:

  1. Configure a UI for your users to select the reports they would like to recieve (and time of day if desired)
  2. Create a procedure that retrieves the subscriptions valid at a given time.
    --I run reports on an hourly basis, so my stored procedure takes a report Id and returns the email address of all recipients who requested a report on the day of the week and at the hour that this report is running.
jkelley
Which is to say, Standard subscriptions won't do what I need? (I was hoping, for the sake of KISS, to be able to avoid having to create my own system for distribution, since I'll have users picking different frequencies, start times, etc.
Beska
Sadly, I think this is the case. There are some nuances to consider in terms of scalability. Will all users get an identical report, or are they customized by user...possibly by group. If you can pool reports by user groups, then your processing requirements will be reduced. If each user needs their own, then as you scale, the processing requirements will begin to pile up.
jkelley
Well, I think I can use the same underlying stored proc for each report, but the report results will be unique for each user. They'll be pulling information for their own account, for a particular time range, etc, so all of that info will have to go in as parameters...so yes, I'll have to do individualized runs for each user. Wonder if there's an easy way to determine the potential load...?
Beska
+1  A: 

SSRS exposes a SOAP API that covers everything the Report Manager web site does as well as publishing new reports and rendering them into the various supported formats. The API also exposes functionality for subscription and delivery management.

Joe Caffeine