Server Class Library

Originally Posted 15 July 2016, 10:06 am EST

  • Originally Posted 15 July 2016, 10:06 am EST

    I'm looking through the documentation for the server class library in particular the ActiveReports.Server.ReportServices.Servicing and Scheduling.

    For the Scheduling I'm looking if there would be some way that we could implement something that that when scheduling would run that we could create a packet of reports. Meaning there'd be a schedule that would run that would have multiple reports and after all reports finish running they could be exported each to a PDF, but then zipped and dropped to a user's file share.

    For the Servicing interfaces when would these be used? I'm actually very interested in the IReportService interface based on what the description says about it. Basically would be be able to somehow implement our own storage system for reports?
  • Reply

    Hi Derek,

    The IReportService is an old interface and is there for backward compatibility. The new API is the REST API documented here:

    For the use-case you have mentioned, you would have to run each of the reports separately to export them to PDF (you can use the REST API for that) and then compress them together as you have mentioned. This would be a piece of code you would develop and can thus be called at an interval defined by your program.

    Thinking about your complete use-case, is this schedule you want to have your users setup using the report portal?

    Please let me know if the above information helps to get you started or if I am missing the point.

  • Reply


    What we'd be looking to do is basically the following, keeping in mind that currently this is all still in SSRS:

    Currently in our system we've designed an UI that allows users to create a report list, meaning that they create a name for a list of reports where they can select one or more reports and defining parameters for each of the reports.

    Currently when they choose to run the named report list, it displays all the reports in individual report named tabs in a jQuery modal dialog. Depending on how many reports they selected and what the reports are doing this could be quite a few tabs along with taking quite a long time to run. We've managed to balance how the reports run by making it that a report will only start running once a tab is selected. This way if there are 5 tabs, (ie 5 reports), there are not 5 requests/responses. This could still happen if a user gets, "click happy".

    Again this was a feature that was needed and is in its first release.

    What I have suggested is redesign of this feature so that when the user sets everything up and they choose run what would really happen is the following:

    1. A schedule/subscription would be created with a folder location for the reports to be dropped too, that would be defined upon that run of the reports, making it the folder unique to that run, like something like a run ID.

    2. After all the report would be finished rendering to PDF and drop to unique run ID fileshare, there would be something that would zip all the PDF files into one file and transferred to the actual "pickup" directory for the user to download the pack.

    I believe what you're saying is that we'd be able to create this schedule to run the reports, but we'd need to create something else to monitor the rest of what we are trying to accomplish? I just didn't know if there would be some way that I could create my own assembly that could hook into AR server's scheduling through interfaces or not.

  • Reply

    Thanks Derek for explaining the functionality.

    For this, in the current version you will have to write something the monitor the location where the schedules are putting the report exports. That piece of code would be responsible to bundle the files and send it by email.

    Now, you may want to setup the code so it reads the email ID from the scheduled task, and using the REST API, you will be able to get the emailID if you have the ID of the scheduled task that the user created.

    I will discuss this among the product team to see if this is a future feature that other people are also interested in. I will keep you posted about this part.
Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels