13
Dec
Off

SSRS deyployment of reports with shared datasets

Reports with embedded datasets only refer to one or more common datasources but not to external datasets.

For deplyoing reports using shared datasets an addtional step is required:

<DataSets>
<DataSet Name="KonfigWerte">
<SharedDataSet>
<SharedDataSetReference>KonfigWerte</SharedDataSetReference>
<QueryParameters>

The link between the abstract dataset name withing a report and the shared dataset within another folder (e.g. subfolder of root/datasets)

The VisualStudio deployment utilizes the Soap webservice of the reportserver
(https://[ServerName]/ReportServer/ReportService2010.asmx)
Here the “SetItemReferences” Method is called to do all mappings at once.

When deploying via powershell script, this extra step is also required.

When deploying via the ReportManager webfrontend, after uploading the Report, the datasets need to be mapped manually.

A unsupported way is manipulating the ReportServer database.

Here the table “Datasets” defines the mapping between reports and datasets (n to m mapping)

Script that shows all mappings between reports and shared datasets:
Use ReportServer
GO
SELECT
Report.Path AS Report,
Datasets.Name as SharedDatasetReferenceNameInReport,
Dataset.path AS SharedDatasetName
FROM DataSets
INNER JOIN Catalog AS Report on Report.ItemID = DataSets.ItemID
INNER JOIN Catalog AS Dataset on Dataset.ItemID = DataSets.LinkID