Am Dienstag hat ein Deep Dive Seminar über Reporting Services 2008 stattgefunden. Eine der Fragen im Zusammenhang mit der Integration von Reporting Services mit Sharepoint war, wie man Sharepoint Listen als Datenquellen für Reporting Services nutzen kann.

Zur Zeit gibt es leider (noch) keine native SharePoint List Data Extension für Reporting Services, es ist aber bereits heute durchaus mit vertretbarem Aufwand möglich Reporting Services auf Basis von Sharepoint Listen zu nutzen. Die folgenden drei Möglichkeiten stehen hier zur Auswahl:

a. XML-Data Extension;
Out-of-the-box gibt es mit der XML Data Extension die Möglichkeit, dass man natürlich auch auf Sharepoint Listen via den GetListItems und SetListItems Methoden des Sharepoint List Web Services (z.B. http://ihrservername/_vti_bin/Lists.asmx) zugreifen kann. Prash Shirolkar, Programm Manager von Microsoft für Reporting Services, hat ein sehr schönes Report Beispiel mit dem Spiel "TicTacToe" erstellt, welches über diese Methode funktioniert (Details siehe weiter unten)

b. Dritthersteller Lösung(en);
Verwendung von 3rd party Software Lösungen, wie z.B. die Reporting Services Data Extension von Enesys

c. Eigenentwicklung;
Entwicklung einer eigenen Lösung, wie z.B. der Blog Eintrag von Teun Duynstee beschreibt

 

Beschreibung der Verwendung von XML-Data Extension mit einem "witzigen" Beispiel des Spieles "TicTacToe":

Ziel:Das Erstellen eines Reporting Services Reports für das Spiel "TicTacToe", welches innerhalb von Sharepoint (bei uns eine WSS 3.0 Installation) liegt.  Die Sharepoint Liste hat zwei Felder (ID/Title) und ist initial nicht gefüllt bzw. kann durch den Report Paramter "Reset" initialisiert werden (d.h. alle 9 Title werden auf "-" gesetzt. Dann klickt der ReportNutzer (aka TicTacToe Spieler) die gewünschte Zelle/Quadranten an und der Report wird ausgeführt, welcher dann die entsprechende Sharepoint Liste/Zeile updatet. Nachfolgend sehen Sie das Ergebnis eines Spieles:

ID: 1
Title: O
ID: 2
Title: X
ID: 3
Title: X
ID: 4
Title: -
ID: 5
Title: O
ID: 6
Title: -
ID: 7
Title: -
ID: 8
Title: -
ID: 9
Title: O

fertiger SSRS TicTacToe Report auf Basis einer WSS Liste

 

Als Datenquelle wird auf eine Sharepoint Custom Liste (bei uns mit dem namen "TicTacToe" zugegriffen. Diese Liste beinhaltet 9 Einträge, mit einer ID und einem Titel. Das Titel Feld wird im Toggle-modus dann von "-" entweder auf "X" oder "O" geschrieben. Der SSRS Report schreibt also bei jedem Klick auf diese Liste und updated die entsprechende Zeile (hier ein Screenshot der Liste am Anfang, bzw. nach der Funktion "RESET";

WSS Liste

Mittels VS wird der SSRS Report definiert. Der Dataset ist mit dem standard Data Source Type "XML" und dem Connection String http://LH_marceltr03/_vti_bin/Lists.aspx definiert. Ergänzend dazu sind nun die eigentlichen Queries zu definieren. Nachfolgend ein Beispiel für den Zugriff auf die ID "1", d.h. in unserem TicTacToe Würfel, der oberste linke Quadrant;

Visual Studio 2008, definition des Datasets und Data Queries auf die WSS Liste

Im folgenden Bild  sieht man wie der Query getestet werden kann. Das Ergebnis zeigt die für uns wichtigen beide Feldern ows_ID und ows_Title;

 Query Desinger und Test der Resultate

Unser Report ist nun fertig und in die Sharepoint Liste hochgeladen worden und kann nun verwendet werden:

TicTacToe Report innerhalb der Sharepoint Bibliothek mit SSRS-Sharepoint Integration kontext sensitivem Menu

Nach dem "Spiel" hat sich die TicTacToe Sharepoint Liste wie folgt verändert:

Sharepoint Liste für TicTacToe Report

 

Haben Sie Lust, dieses Beispiel selber mal auszuprobieren und zu installieren? -- Sie können dieses TicTacToe SSRS Report Beispiel als TicTacToe.RDL File hier runterladen. Damit es funktioniert müssen Sie nur noch eine entsprechende Custom Liste in Sharepoint definieren (Unter Sharepoint Site Actions > Create > Custom List > Geben den Namen "TicTacToe" ein. Standardmässig wird  die ID nicht angezeigt, sie können dies einschalten indem Sie in der Sharepoint Liste unter Settings > Views > AllItems > die Felder "ID", "Title" und "Created by" auswählen. Nun haben Sie die Basis/Datenquelle für diesen Report. Als nächstes laden Sie das RDL File in die Sharepoint Library (egal welche) und rechts-Maus klicken auf "Manage Data Source", wo Sie den Pfad auf Ihren Maschinennamen bzw. Pfad des Sharepoint List WebServices zeigen (Ihrservername/_vti_bin/Lists.asmx).

Anmerkung: Dieses Beispiel funktioniert natürlich auch in einem SQL Server Reporting Services NATIVE Mode (d.h. Sharepoint und SSRS sind separat installiert). Um Reporting Services mit Sharepoint im Integrierten Modus nutzen zu können sind die folgenden Schritte notwendig:

- Bei der Installation einer neuen SQL Server Reporting Services Umgebung können Sie direkt definieren, ob SSRS native/integrated installiert werden soll, oder ob SSRS nur installiert werden soll, aber später konfiguriert werden soll

- Mit SSRS2008 gibt es ein neues Konfigurationstool (unter Windows Start Menu > SQL Server 2008 > Configuration Tools > Reporting Services Configuration Manager). Damit können Sie die SSRS Datenbank erstellen und definieren, dass diese für SharePoint Integrated funktionieren soll (ACHTUNG: Reports die Sie schon im Native Mode definiert haben werden nicht "automatisch" in die neue DB gezügelt, dies müssen Sie selber skripttechnisch oder händisch nachführen...). Die URL für Report manager ist im sharepoint Integrated Modus nicht mehr gültig/relevant. Die URL für den SSRS Webservice ist aber gültig/identisch.

- Auf der Sharepoint Seite müssen Sie nun den Microsoft SQL Server 2008 ReportingServcies Add-In für Sharepoint runterladen und installieren - Download und Installationsanleitung finden Sie via: http://www.microsoft.com/downloads/details.aspx?FamilyID=200FD7B5-DB7C-4B8C-A7DC-5EFEE6E19005&displaylang=en

- Nachdem dieses Add-In installiert ist, sollten Sie via Sharepoint 3.0 Central Administration unter Application Management einen neuen Bereich "Reporting Services" sehen. Falls Sie dies nicht sehen ist höchstwahrscheinlich der Sharepoint Feature noch nicht aktiviert. Sie können dies tun unter Sharepoint > Site Actions >Site Settings > Site Collection Features und darin sollten Sie (nach der Installation des Add-Ins) den Sharepoint-Feature "Report Server Integration Feature" sehen, welchen Sie "aktivieren" müssen.

- Zurück in der Central Admin > Application Management > Reporting  Services Integration sind die drei Konfigurationsschritte (Grant Database Access, Manage Integration Settings (hier verwenden Sie die URL auf den SSRS Webservices, welchen Sie vorher mit dem SQL Reporting Services Config Manager gesehen haben) und den Server Defaults.

Das war's eigentlich auch schon - Ihre SSRS Umgebung ist nun mit Sharepoint Integriert. Sie können in einer beliebigen Sharepoint Bibliothek nun SSRS Reports (rdl) und Data Sources (rds) Files hochladen und haben entsprechende kontext sensitive Menus für SSRS Funktionen. Falls Sie dies nicht sehen, gehen Sie in die Settings der entsprechenden Sharepoint Bibliothek (z.B: Shared documents > Settings > document Library Settings > Advanced Settings (Allow managment "YES") > dann zurück auf document Library Settings > Content Types > Add from existing Site Content Types, und führ da die neuen ReportServices Content Types "Report Data source", "Report Builder Report" dazu.

 

viel Erfolg!