Using external assembly's method's results as a dataset - reporting-services

Using SQL2008R2:
I am trying to create a dataset that is simply the result of an external assembly's return method(s), but everything I can find regarding using custom/external assemblies just has a textbox's value set to the external assembly's method's result via an expression.
I simply want Report Server to do the data processing in the external assembly and bind that result to a very simple report.
I found some references to something about MDX but they seem to be a few years outdated and needed to know if this is possible.

Assuming you already have a .dll - Place your dll in the report designer folder (where your RDL is) and the report server folder, somewhere around here:
Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
Now add a reference to your dll from your report.
With your report open go to Report, Report Properties, References, Add reference, browse to your dll and add it.
Now in a text box properties Value call a method of your dll. It should look something like this:
=MyDllName.ClassName.MyMethodOrSubOrWhatever
This is a great article that can walk you through this:
Assuming you already have a .dll - Place your dll in the report designer folder (where your RDL is) and the report server folder, somewhere around here:
Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
Now add a reference to your dll from your report.
With your report open go to Report, Report Properties, References, Add reference, browse to your dll and add it.
Now in a text box properties Value call a method of your dll. It should look something like this:
=MyDllName.ClassName.MyMethodOrSubOrWhatever
This is a great article that can walk you through this: http://support.microsoft.com/kb/920769
P.S. Another option, if you don't want the web server doing the heavy lifting, is to use stored procedures. However, in our experience with very large database systems, it is much easier to scale up the web servers than it is to scale up the database servers so we do much of the heavy lifting on the web servers.

If you need a data set that is generated by custom .NET code, you can either set up a web service (here's a good tutorial), or you can set up a custom "data processing extension".
A data processing extension will allow you to choose a new data source in the SSRS report designer, and this data source will run custom .NET code. The full description is on MSDN, but here are the basic steps:
Create a new class library project
Implement all of the required extensions (and any desired optional ones)
Copy the DLL to the SSRS bin folder
Edit the SSRS config file to register your extension (by specifying the fully qualified name of your IDbConnection class)
You can find working examples from both CodePlex and Microsoft.

Related

Is there a way to publish main and sub SSRS reports using report builder?

Dears,
I am quite new with Report Builder, and also with SSRS so sorry in advance if I raise irrelevant questions. My goal, essentially, is to deploy a sort of SQL Monitoring dashboard (I just uploaded a demo picture of it, here the link 1 ), that is composed by a main report with some charts and toggled sub reports. All these sub reports are filtered by the SQL instance name, and other parameters like number of monitoring days, months etc...
Plus I make use only of shared datasets.
Now, if I deploy the whole solution with Visual Studio against my report server, it works perfectly and all the report parts are uploaded without any issue against the report site.
If I try to deploy the report using the report website manager (by trying to upload the whole solution file by file), it does not upload anything, even if I create first the data source and then trying to add the existing datasets.
If I try to deploy the solution with Report Builder (after having giving to it the target report server URL and an existing folder that starts with slash), the only option I have is to open the solution as file, and save it against the target report server configured. But then the annoying error appears even if I the path has less than 260 char and even if the path starts with the slash:
"Error: The path of the dataset "" is not valid. The full path must be
less than 260 characters long; other restrictions apply. If the report
server is in native mode, the path must start with slash.
(rsInvalidItemPath)"
What am I doing wrong? I thought that a tool like that, used also for publishing, would make the life easier, but apparently I may not know exactly how to use it.

SSRS shared datasets missing

Source files for shared datasets are lost/missing. Any way to generate these from the SSRS report definition that is referencing them?
Thanks!
You can just download them from the server again.
Go to you SSRS home page (Report Manager, or Web Portal as its known in later versions of SSRS).
You might need to show hidden items, then open the datasets folder and you will see your shared datasets.
Click the one you need and there are options to either download the *.rsd file or open it directly in Report Builder, either way you will have *.rsd file which you can either add back into your Visual Studio project or open in a text editor and get the command text.

How to change ReportServerUrl in Report Builder 3.0?

We have 2 reporting server. One for test and one for production. Our business analyst will build the reports (rdl files) using Report Builder 3.0. After they complete the development and test on test reporting server (e.g. http://test/reportserver), we will modify the "ReportServerUrl" and Datasource, and then upload to production reporting server (e.g. http://prod/reportserver).
The problem is I cannot find in the Report Builder 3.0 UI how to configure this change. The only way I find is open the RDL file using Notepad, locate and then change the URL.
Since our analyst are not programmers I want to avoid use notepad. May I know where is the button to change ReportServerUrl?
Each time you add a Shared DataSource to a report or edit an existing DataSource (and therefore connect to a Report Server), the current report server is updated. This is shown in the bottom left of your Report Builder window ("Current report server...") and also gets written to the <rd:ReportServerUrl> tag in the .rdl file itself. This is just an indicator of the last Report Server which was connected to by the report.
Therefore, if you wish to change the <rd:ReportServerUrl>, you just need to amend the DataSource(s) in the report to be ones which reside on the Report Server whose URL you wish to have appear.

TFS 2013: Uploading new report

We have a fully working TFS 2013 and have access to the default reports of the process template that we are using. Now we created a new report and try to make it appear in the team explorer of VS2013. Searching the internet indicated that the only possible option would be to download the process template, change the reporting part (e.g. adding the new report as default report) and then upload the "default" reports then via command line tool (tfpt addprojectreports ...)
Since changing (including adding) areas, iterations and other stuff can be done in the "live" system (without editing the process TEMPLATE), it is hard for me to believe that there is no way to add reports without changing the process template.
Does anyone know how to upload a new report? Of course, in the end we would like to see the report in the team explorer...
try http://yourReportingServer/Reports/Pages/Folder.aspx
then navigate via collection, project to the folder you want the report to show up in, then "upload file".
You can directly upload the .rdl file to SSRS of your TFS instance.

Unbale to preview the Report in Visual studio SSRS

I have created the custom data source Provider. I have edited the config file RSReportDesigner.config and RSPreviewPolicy.config. I am able to see my custom data source provider in data source list while creating the data source in SSRS (Visual Studio). While creating dataset, iam able to execute query and get data.
But, when i try to preview the report it display following error: An attempt has been made to use Data Extension 'CUSTOM_DATASOURCE' that is either not registered for this report server or is not supported in this edition of Reporting Services
See: https://support.microsoft.com/en-us/kb/2750044
and as the article instructs, be sure to also add the same xml snippet provided as the solution in the article, to the PreviewProcessingService.exe.config file that is located in %Program Files%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies folder.
This file does not have existing entries like the devenv.exe.config, but you will see an <assemblyBinding> </assemblyBinding>section and you can insert the xml from the article between these tags.
You may have to relaunch SQL Data Tools for the changes to take affect.
Are you using Sql Server Express? Express doesn't support the full feature set of Reporting Services. There is a list of the unsupported features on MSDN, one of which is:
The Reporting Services API extensible platform for delivery, data processing, rendering, and security is not supported