5 Reporting Services
5.1 Berichte und Modelle
Berichte sind die Benutzerschnittstelle von
Business Intelligence Lösungen (BI). Sie präsentieren
dem Benutzer die Ergebnisse von Datenanalysen.
5.2 Architektur
5.2.1 Komponenten
Komponente
|
Beschreibung
|
Berichtsserver
|
Fasst alle Komponenten für die
Speicherung, Verteilung und Rendern der Berichte zusammen.
|
Programmierschnittstellen
|
Ein Satz von Webservices, mit dem alle
Komponenten des Berichtsservers von Anwendungen angesteuert
werden können
|
Berichtsprozessor
|
Zentrale Instanz der Reporting Services. Nimmt
Berichtsanforderungen entgegen, erstellt gemäß der
Anforderungen Berichte und liefert diese aus.
|
Berichtsserverdatenbanken
|
Die Datenbank Reportserver, welche alle
Objektdefinitionen von Berichten speichert, sowie die Datenbank
Reportservertempdb zur Aufnahme temporärer
Informationen bei der Berichtserstellung.
|
Renderingerweiterungen
|
Menge von Komponenten, die aus den Daten und
den RDL- Definitionen der Berichte einen Bericht in einem
speziefischen Ausgabeformat erzeugt.
|
Datenverarbeitungserweiterungen
|
Menge von speziellen Datenbankprovidern
(Anbindungen an Datenbanken). Verwalten die Datenbankverbindungen
und die Parameterübergabe. Z.B. Provider für SQL-
Server, Oracle, ...
|
Authentifizierungserweiterungen
|
Methoden zur Authentifizierung von Benutzern,
z.B. "Integrierte Windowsauthentifizierung" oder
"Eingabe von Benutzername und Passwort"
|
Prozessor für Zeitplanung
und Übermittlung
|
Definition und Realisierung von Zeitplänen
für die Erstellung und Auslieferung von Berichten. Basiert
auf SqlServer Agent.
|
Übermittlungserweiterungen
|
Übermittlungserweiterungen ermöglichen
die Auslieferung von abonnierten Berichten an registrierte
Benutzert z.B. über Email oder das Dateisystem in einer
Domäne.
|
Berichtsmanager
|
ASP.NET- Anwendung zur Verwaltung der
Reporting Services über Web
|
5.3 Werkzeuge für die Berichtserstellung
5.3.1 Visual Studio Business Intelligence Development
Studio
Menge von Add Ins für Visual Studio zum
Erstellen von Berichten und BErichtsmodellen:
5.3.2 Berichts- Generator
.NET Anwendung, die über Click Once
installiert wird, mit dem der Benutzer auf Basis von existierenden
Berichtsmodellen einfache Berichte erstellen kann.
5.4 Konfiguration
Im Folgenden die empfohlenen Konfigurationen für
die Reporting Services von Microsoft. Die Konfiguration mit dem
geringsten Aufwand an Hardware und minimalsten Bedarf an
Softwarelizenzen ist die gemeinsame Installation von Berichtsserver
und Berichtsserverdatenbanken auf einem Server. Jedoch kann der
Server dann schnell ausgelastet werden, da im Berichtsserver keine
Speicherplatzbeschränkungen einstellbar sind.
5.4.1 Konfiguration für kleine Unternehmen
In dieser Konfiguration werden Berichtsserver und
Berichtsserverdatenbanken physisch getrennt. Dabei werden zwei SQL-
Server Lizenzen fällig (eine für die Ausführung des
Berichtsserverdienstes auf A, und eine für den Betrieb der
Berichtsserverdatenbanken auf B).
5.4.2 Skalierbare Konfiguration
Diese Konfiguration ist bezüglich seiner
Leistungsfähigkeit erweiterbar, und kann somit mit einem
Unternehmen "mitwachsen". Dabei kommen weitere Microsoft
Servertechnologien zum Einsatz.
5.5 Konfigurationstools
Die Konfiguration der Reporting- Services wird
durch Tools unterstützt.
5.5.1 Reporting- Services Konfigurationsmanager
Das Tool kann über die
Start/Programme/SqlServer 2005/Konfigurationstools/Reporting
Services Konfiguration gestartet werden. Es können folgende
Einstellungen vorgenommen werden:
Windows- Dienst
Status abfragen, sowie Dienst starten und stoppen
Virtuelle
Verzeichnisse des Berichtsservers abfragen
Windows
Dienstidentität des ReportServers einstellen
Webdienst
Ausführungskonto einstellen
Wenn die
Reporting Services 2005 unter IIS 5.0/5.1 ausgeführt werden,
dann kann das Ausführungskonto nicht beeinflusst werden. Es
ist dann immer das ASP.NET Dienstkonto. Im Virtuellen Verzeichnis
des ReportServer- Webdienstes ist die Konfigurationsdatei
rsreportserver.config enthalten. In ihr sollte das Element
configuration/Service/WebServiceAccount den Wert System
haben (und nicht LocalSystem sonst streikt der Dienst!)
Setup der
Berichtsserverdatenbanken
Verbindungsinformationen
definieren
Skripts zum
Erstellen, Aktualisieren und Erteilen von Rechten automatisch
erzeugen lassen
Verschlüsselung
Initialisierung
Email-
Einstellungen
Ausführungskonto
5.5.2 Managment Studio
Verwaltung sämtlicher Resourcen auf dem
Berichtsserver. Weiter können auf Basis bereits angelegter
Datenquellen bzw. Datenquellansichten Berichtsmodelle erstellt
werden.
5.5.3 Berichts Manager
ASP.NET- Anwendung zur Verwaltung von Resourcen
auf dem Berichtsserver über Web.
http://localhost/Reports
Achtung: Unter
Windows Vista muss für die ReportingServices in der SqlExpress
Advanced Edition der Browser mit Administratorrechten gestartet
werden, sonst können keine Änderungen im Berichtsmanager
durchgeführt werden.
5.6 Berichte erstellen
5.6.1 Ablauf
5.6.2 Struktur eines Berichtsdokumentes
Berichte werden durch RDL (Report
Definition Language) Dateien definiert. RDL ist ein von Microsoft
definiertes XML- Vokabular.
5.6.3 VB.NET- Ausdrücke und Skripte
Bei der Verarbeitung eines Berichtes durch den
Berichtsprozessor kann dieser Ausdrücke und Scripte in VB.NET
auflösen und Verarbeiten. Das Verfahren ähnelt dem von
ASP.NET - Seiten. Mittels der VB.NET Ausdrücke werden z.B. von
Berichtselementen aus auf die Felder des aktuellen Datensatzes aus
einem Datenset zugegriffen. Im Folgenden die wichtgsten
Skriptausdrücke
Ausdruck
|
Beispiel
|
Erläuterung
|
TotalPages
|
=Global!TotalPages
|
Globale Variable, die die Anzahl der Seiten
zurückgibt
|
UserUserID
|
=User!UserUSerID
|
Globale Variable, die den Benutzer zurückgibt
|
Lnaguage
|
=Globals!Language
|
Globale Variable, die die Kulturkennung für
den Bericht zurückgibt
|
ReportServerUrl
|
=Globals!ReportServerUrl
|
Globale Variable, die die URL des
ReportServers zuurückgibt
|
ReportFolder
|
=Globals!ReportFolder
|
Gloable Variable, die den Pfad des Ordners
zurückgibt, in dem der Bericht bereitgestellt wurde
|
ExecutionTime
|
=Globals!ExecutionTime
|
Globale Variable, die den Zeitpunkt der
Erstellung des Reports zurückgibt
|
ReportName
|
=Globals!ReportName
|
Globale Variable, die den Name des Berichtes
zurückgibt
|
Parameters!<Name Parameter>.Value
|
=Parameters!start.Value
|
Gibt den Wert eines Berichtsparameters zurück
|
ReportItems!<Name Bereichtelement>
|
=ReportItems!Text1.Value
|
Zugriff auf ein Bereichtselement und dessen
Eigenschaften
|
Fields!<Name Datenfeld>.Value
|
Sum(Fields!SizeInBytes.Value, "DmsMinDataSet")
|
Zugriff auf den Wert eines Feldes im akutellen
Datensatz aus einem Dataset (hier "DmsMinDataSet")
|
Die Werte fast aller Eigenschaften eines Berichts
können aus Ausdrücken evaluiert werden. Dabei können
im Element Code selbstdefinierte Funktionen hinterlegt
werden, um die Funktionalität der Ausdrücke zu erweitern.
Im Folgenden ein Auszug
aus den vordefiniertern Funktionen:
Funktion
|
Beispiel
|
Erläuterung
|
Sum(<Eigenschaft>)
|
=Sum(Fields!SizeInBytes.Value)
|
Summe aller
Eigenschaftswerte in der aktuellen Gruppe
|
Sum(<Eigenschaft>, <Scope>)
|
=Sum(Fields!SizeInBytes.Value, "DmsMinDataSet")
|
Summe aller Feldwerte über alle
Datensätze des Datasets DmsMinDataSet
|
IIF(<Bedingung>, <Ausdruck wenn true>, <Ausdruck wenn false>)
|
=IIF(Fields!SizeInBytes.Value < 1024*1024, "Green", "Red")
|
Bedingte Evaluierung. Das Beispiel würede
z.B. alle Zellen in einer Tabelle grün einfärben, wenn
der Wert "SizeInBytes" < 1MB ist
|
Statische .NET- Methoden
|
=System.IO.Path.GetDirectoryName(Fields!path.Value)
|
Statische Methoden des .NET Frameworks können
dierekt in den Ausdrücken verwendet werden. Hier wird aus
einem Dateinamen nur der Name des Verzeichnisses extrahiert.
|
Ü: Bericht, der
alle Globale Variablen in Textboxen ausliest.
5.6.4 Datenquellen definieren
Datenquellen sind Container, die die
Verbindungsinformationen zu einem Datenbankserver enthalten
(Verbindungszeichenfolgen). Es werden zwei Arten von Datenquellen
unterschieden:
Bereichtsspezifische Datenquellen
|
Freigegebene Datenquellen
|
Verbindungs- und Authentifizierungsdaten
sind in die RDL- Datei des Berichtes integriert
Datenquelle ist nur für den Bericht
verfügbar, in dem sie definiert wurde
Bsp.: In einen Bericht integrierte Datenquelle
<Report>
<DataSources>
<DataSource Name="DataSourceDmsMin">
<rd:DataSourceID>
8eda0301-ecc0-4601-ae66-2f5ce7fffcd0
</rd:DataSourceID>
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>
Data Source=.;Initial Catalog=dmsmin
</ConnectString>
<IntegratedSecurity>true</IntegratedSecurity>
</ConnectionProperties>
</DataSource>
</DataSources>
...
</Report>
|
Verbindungs- und Authentifizierungsdaten
sind in einer RDS- Datei abgelegt.
Die Datenquelle bekommt einen GUID als
ID.
In den Berichten über die ID der
Datenquelle auf diese verwiesen
Freigegebene Datenquellen werden als
eigenständige Objekte auf dem Server bereitgestellt
Bsp.: Bezug auf eine freigegebene Datenquelle
aus einem Bericht heraus
<Report>
<DataSources>
<DataSource Name="DmsMinDataSource">
<rd:DataSourceID>
b5010727-7a9f-4880-8ae9-3951d6a413d4
</rd:DataSourceID>
<DataSourceReference>DmsMinDataSource</DataSourceReference>
</DataSource>
</DataSources>
...
</Report>
|
Freigegebene Datenquelle sind i.a. besser wartbar,
und sind deshalb zu bevorzugen.
Ü: Datenquelle auf DmsMin und HC1 als
freigegebene Datenquellen definieren.
5.6.4.1 Datenquellen und Anmeldeinformationen
5.6.4.1.1 Integrierte Sicherheit von Windows
Der Zugriff auf die Daten in der Datenbank erfolgt
mit den Anmeldeinformationen des Berichtskonsumenten.
5.6.4.1.2 Gespeicherte Anmeldeinformationen
Pro Datenquelle kann 1 Anmeldeinformationssatz auf
dem Berichtsserver verschlüsselt gespeichert werden.
Datenquelle <--> Berichtsserver.Menge_der_verschlüsselten_Anmeldeinformationen
Gepeicherte Anmeldeinformationen sind notwendig, wenn :
der Berichtsserver auf eigene Initiative
ausliefern muß, z.B. bei zeitgesteuerten oder datengesteuerten
Abonnements.
Berichte im Cache zwischengespeichert werden
oder aus einem Snapshot erzeugt werden
5.6.4.1.3 Keine Anmeldeinformationen
Diese Form ist sinvoll, wenn gilt:
Die Remotedatenquelle erfordert keine
Anmeldeinformationen
Anmeldeinformationen werden in der
Verbindungszeichenfolge übergeben (Nur bei gesicherten
Verbindungen wie SSL)
Bericht ist Unterbericht und übernimmt
die Anmeldeinformationen vom übergeordneten Bericht
5.6.5 Datasets, Abfragen, Abfrageparameter und
Berichtsparameter
Die zu präsentierenden Daten entnehmen
Berichte sog. Datasets. Datasets kapseln Abfragen und
Abfrageparameter, und abstrahieren so von den speziellen
Abfragesparachen wie TSQL oder Oracle- SQL. In den RDL- Dateien
werden die Datasets im Element <Datasets> definiert.
Beispiel:
<Report>
<DataSets>
<DataSet Name="DmsMinDataSource">
<Fields>
<Field Name="photography_place">
<DataField>photography_place</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="recording_time">
<DataField>recording_time</DataField>
<rd:TypeName>System.DateTime</rd:TypeName>
</Field>
<Field Name="img">
<DataField>img</DataField>
<rd:TypeName>System.Byte[]</rd:TypeName>
</Field>
<Field Name="taxonomy_of_content">
<DataField>taxonomy_of_content</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>DmsMinDataSource</DataSourceName>
<CommandText>
SELECT photography_place, recording_time, img, taxonomy_of_content
FROM FotosView
WHERE (taxonomy_of_content = N'picture/photo')
ORDER BY photography_place</CommandText>
</Query>
</DataSet>
</DataSets>
...
</Report>
5.6.5.1 Verfeinerung der Abfrage mit Abfrageparametern
<Report>
...
<!-- Berichtsparameter: Dienen zum Parametrieren von Berichtsinternen Skripten und Abfragen -->
<ReportParameters>
<ReportParameter Name="start">
<DataType>DateTime</DataType>
<AllowBlank>true</AllowBlank>
<!-- Das Prompt ist die Beschriftung der Eingabefelder im Berichtviewer für den Berichtsparameter -->
<Prompt>Zeitraum_Start</Prompt>
</ReportParameter>
<ReportParameter Name="end">
<DataType>DateTime</DataType>
<AllowBlank>true</AllowBlank>
<Prompt>Zeitraum_ende</Prompt>
</ReportParameter>
</ReportParameters>
...
<DataSets>
<DataSet Name="DmsMinDataSource">
<Fields>
<Field Name="photography_place">
<DataField>photography_place</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="recording_time">
<DataField>recording_time</DataField>
<rd:TypeName>System.DateTime</rd:TypeName>
</Field>
<Field Name="img">
<DataField>img</DataField>
<rd:TypeName>System.Byte[]</rd:TypeName>
</Field>
<Field Name="taxonomy_of_content">
<DataField>taxonomy_of_content</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>DmsMinDataSource</DataSourceName>
<!-- Abfrage mit Abfrageparametern -->
<CommandText>
SELECT photography_place, recording_time, img, taxonomy_of_content
FROM FotosView
WHERE (taxonomy_of_content = N'picture/photo') and recording_time between @start and @end
ORDER BY photography_place
</CommandText>
<!-- Zurodnung der Abfrageparameter zu Berichtsparametern -->
<QueryParameters>
<QueryParameter Name="@start">
<Value>=Parameters!start.Value</Value>
</QueryParameter>
<QueryParameter Name="@end">
<Value>=Parameters!end.Value</Value>
</QueryParameter>
</QueryParameters>
</Query>
</DataSet>
</DataSets>
...
</Report>
5.6.5.2 BIDS und Datasets
In BIDS werden die Datasets mit komfortablen
Abfrageeditoren und Konfigurationsdialogen entworfen und gewartet.
Werden Berichtsparameter, oder Abfrageparameter geändert, so
können die Zuordnungen von Berichts- an Abfrageparameter über
den Dataset-Konfigurationsdialog (erreichbar im Datendesigner
neben dem Dataset- Dropdown- Liste über ...). gewartet
werden.
5.6.6 Berichtsvorlagen
Ist eine Menge von Berichten mit einer gleichen
Grundstruktur zu verfassen, dann bietet sich die Anlage einer Vorlage
in der Visual Studio IDE an. Siehe dazu Berichtvorlagen
in VS 2005 & VS 2008.
5.7 Präsentation von Berichtsdaten mittels
Berichtselemente
Berichte werden durch RDL- Dateien definiert, die
wiederum XML- Dateien sind. Damit haben Berichte eine natürliche,
hierarchische Struktur. Der Fokus im folgenden liegt qauf den
Strukturen zur Präsentation der Berchtsdaten.
5.7.1 Berichtselemente
Die Berichtsdaten werden mittels
Bereichtselementen präsentiert. Berichtselemente haben folgenden
allgemeine Eigenschaften:
Im
Folgenden werden die Bereichtselemente kurz vorgestellt:
5.7.1.1 Textfeld
Textfelder präsentieren alphanummerische
Daten in einem rechteckigen Fenster. Wesentliches Gestaltungsmerkmal
sind der Schriftfont und die Schriftfarbe.
5.7.1.2 Bild
Einbetten von Bildern in Berichten. Die Bilder
können von der Festplatte, von einem Webserver oder aus einer
Datenbank eingelesen werden.
Ü: Bericht mit Logo von HDD
5.7.1.3 Linie
Linien sind rein graphische Gestaltungselemente.
5.7.1.4 Rechteck
Rechtecke bilden Container für untergeordnete
Bereichtelemente. Werden z.B. Rechtecke ausgeblendet, dann werden
auch alle im Rechteck enthaltenen Bereichtselemente ausgeblendet
5.7.1.5 Liste
Liste stellt für jeden Datensatz einen
rechteckigen Container bereit (Listenelemente). Die in den
rechteckigen Listenelementen enthaltenen Berichtselemente können
an die Felder des Datensatzes gebunden werden.
5.7.1.6 Tabelle
Tabellen stellen für jeden Datensatz eine
Tabellenzeile bereit, deren Zellen wiederum jeweils ein
Berichtselement aufnehmen kann. Die Berichtselemente der Zellen
können an die Felder des Datensatzes gebunden werden.
5.7.1.7 Matrix
Eine Matrix ist eine Kreuztabelle, die Dimensonale
Datensätze aus den Analysis- Services visualisieren kann.
5.7.1.8 Diagramm
Ein Diagamm ist eine graphische Präsentation
der Daten aus den Datensätzen. Es werden z.B. Balken, Linien und
Tortendiagramme zur Präsentation angeboten.
5.7.1.9 Unterbericht
Ein Unterbericht ist ein rechteckiger Bereich, in
dem ein weiterer Bericht eingeblendet werden kann. Besonders sinnvoll
ist dieses Element, wenn die Datenauswahl des einzublendenden
Berichts über Berichtsparameter konfigurierbar ist.
5.7.2 Gruppierungen
Gruppierte Daten können auf
Berichtsstrukturen in Verschiedenen Varianten abgebildet werden:
5.7.2.1 Gruppierungen in Tabellen
In Tabellen können so konfiguriert werden,
das die unnötige Wiederholung von Gruppenfelder unterdrückt
wird. Dazu ist das Kontextmenü der Detailzeile aufzurufen, und
in diesem die Funktion "Gruppe einfügen..."
auszuwählen. Im erscheinenden Gruppierungsdialog ist das die
Gruppe definierende Feld auszuwählen.
5.7.2.2 Gruppierungen in Listen
5.7.3 Sortierungen
Auf dem Berichtsserver können die Daten
während des renderns nochmals sortiert werden. So können z.
B. Tabellenzeilen von data.fileinfos,
die in einem Tabellenelement dargestellt werden sollen, nochmals
bezüglich SizeInBytes absteigend
sortiert werden.
5.7.4 Filterung
Datasets können auf dem Berichtsserver
während des renderns gefiltert werden. Die Auswahl der
anzuzeigenden Datensätze sollte bereits in der Abfrage auf der
Datenquelle erfolgen. Wenn aber eine Einschränkung der
Datensatzmenge in der Abfrage auf der Datenquelle in der gewünschten
Weise nicht möglich ist, kann dies auf dem Reportserver durch
die Filter in der Datenquelle als auch in den Reportitems nachgeholt
werden.
5.7.5 Drilldown und Drillup
Drilldown und -up kann in Reports mittels einer
Kombination aus Gruppierung und Sichtbarkeitsstatus von
Berichtselemente implementiert werden. Dabei sind die Detailgruppen
initial unsichtbar zu schalten. Der Sichtbarkeitszustand wird kann
dann von einem Textfeld in der Gruppenzeile sichtbar bzw. unsichtbar
geschaltet.
5.7.6 Hyperlinks
Über Hyperlinks kann zwischen Berichten
navigiert werden. So können aus einer Datensatzpräsentation
weitere Detailberichte aufgerufen werden.
5.7.7 Dokumentstruktur
Die Dokumentstruktur ist ein interaktives
Berichtelement, das eine hierarchiche Darstellung der im Bericht
repräsentierten Datensätze ermöglicht. Es ist
sinnvoll, bei sehr vielen Datengruppen mittels der Dokumentstruktur
dem Benutzer eine schnelle Navigation innerhalb der Gruppen zu geben.
Dazu ist für die Gruppe unter Navigation der sog.
Dokumentstrukturbezeichner zu definieren.
Bsp: Liste der
erfassten Verzeichnisse in DMSMIN (hirarchy_id), wobei pro
Listenelement alle im Verzeichnis enthaltenen Dateien aufgelistet
werden.
5.8 Ad- Hoc Berichte aus Berichtsmodellen generieren
Häufig ist es notwendig, das im Berichtswesen
zu verarbeitenden Zahlenmaterial schnell in einen Aussagekräftige
Form für eine aktuelle Entscheidungsfindung zu verwandeln.
Reporting Services bietet auf der Basis sog. Berichtsmodelle mit dem
Berichtsgenerator ein leistungsfähiges Werkzeug für
die Erstellung solcher Ad- Hoc Berichte an.
5.8.1 Berichtsmodelle
Das Ziel von Berichtsmodellen ist es, eine
Datenbasis aus einer relationalen, oder multidimensionalen Datenbasis
zu gewinnen, die direkt in Berichte eingesetzt werden können.
Dazu werden die für eine Menge von Auswertungen relevanten Daten
aus einem größeren Datenmodell ausgewählt. Für
bestimmte Datentypen werden automatisch häufig benötigte
Aufteilungen und Zusammenfassungen automatisch vorgenommen. So werden
aus DateTime- Spalten zusätzliche Spalten für Tag, Monat,
Jahr etc. gebildet. Auch häufig benötigte Aggregationen
werden automatisch angeboten.
Für relationale
Datenbanken werden Berichtsmodelle im BIDS mittels
Berichtsmodellprojekten erstellt. Für Analysis. Services
können Berichtsmodelle nur im Managment Studio oder im Report
Manager erstellt werden (Die Verbindungszeichenfolge kann aus den
Datenquellen von Report- Service- Projekten entnommen werden).
Die Generierung eines
Berichtsmodells wird über Modellierungsregeln gesteuert.
5.8.2 Berichtsgenerator
Mit dem Berichtsgenerator können die in einem
Berichtsmodell für die Auswertung vorbereiteten Daten effizient
zu Reports verbaut werden.
5.8.2.1 Filter
Mittels Filter können die Daten im Bericht
noch stärker eingeschränkt werden, als es das
Berichtsmodell ursprünglich vorsieht. Die Filter wirken bereits
bei der Slektion der Daten aus den Datenquellen.
Filter werden über den Daten Filtern
Dialog programmiert (Symbolleitste/Symbol Trichter). Dabei werden in
Gruppen unterteilte Filterausdrücke programmiert. In den Gruppen
können für Felder Filterbedingungen definiert werden, die
durch logische UND oder ODER- Operationen verknüpft sind.
5.8.2.2 Links- Regel für Gruppierung und Aggregation
Für alle Felder links von eienm Aggregatfeld
werden die Aggregatwerte für alle in diesen Feldern bildbaren
Gruppen erzeugt.
Durch
die Linksregel werden häufig zuviele Aggregate gebildet. Die
Überzähligen können dann im Kontextmenü des
Reiters über der Spalte abgeschaltet werden.
5.9 Berichtsverwaltung
Auf dem Berichtsserver werden die erstellten
Berichte in einer Ordnerstruktur Verwaltet. Berichte sind nichts
weiter als XML- Dateien, und so besteht die Bereitstellung des
Berichts einfach in einem Dateiupload der entsprechenden RDL-Datei.
Ein
auf dem Server bereitgestellter Bericht kann anschließend
konfiguriert werden:
5.9.1 Ausführungsoptionen
In der Standardeinstellung werden bei jedem
Berichtszugriff die aktuellen Daten aus der Datenquelle abgerufen und
mit der RDL- Datei zu einem Bericht verarbeitet. Diese Verfahren
garantiert aktuelle Berichte. Der Server wird dabei am stärksten
belastet.
Achtung:
Die
folgenden Ausführungsoptionen setzen voraus, daß die
Anmeldeinformationen für die Daten in den Datenquellen auf dem
Berichtsserver gespeichert sind.
5.9.1.1 Cache
In Fällen, wo die Anforderungen an die
Aktualität der Berichte weniger streng sind (z.B. Berichtsdaten
ändern sich in Zeiträumen > 1 Min) können
Zwischenstände als Kopien in einem Cache gespeichert werden. Der
Cache hält dabei für einen speziellen Satz von
Berichtsparametern eine Kopie eines fertigestellten Berichtes zur
Auslieferung für einen einstellbaren Zeitraum bereit, wie
folgendes Bild zeigt:
5.9.1.2 Snapshot
Snapshots stellen eine besondere Betriebsart des
Caches dar. Im Normalbetrieb wird nach Ablauf der Verfallszeit die
Berichtskopie im Cache gelöscht. Eine neue Kopie wird erst
ertsellt, wenn der Bericht mit dem speziellen Berichtsparametersatz
von einem User erneut abgerufen wird.
Beim Snapshot wird die Kopie durch den
Administrator oder gemäß eines serverseitigen Zeitplan
erstellt. Individuelle Berichtsparameter können hier nicht mehr
berücksichtigt werden. Deshalb ist eine Voraussetzung für
einen Snapshot, das für die Berichtparameter, sofern welche
vorhanden sind, Standardwerte definiert werden. Diese werden bei der
Berichtserstellung berücksichtigt.
Snapshots können im Verlauf gespeichert
werden.
5.9.2 Berichtszugriff über Berechtigungen steuern
Der Zugriff Objekte wie Berichte und Datenquellen
wird über Berechtigungen auf Ebene der Ordner und Objekte
erteilt. Die Subjekte, denen Zugriff erteilt werden kann, sind dabei
Windows- Benutzer oder Windows- Benutzergruppen.
Die auf einem Reporting Service- Objekt
ausführbaren Operationen sind als Tasks definiert. Diese Tasks
werden mittels sog. Rollen zu Paketen von ausführbaren
Operationen zusammengefasst. Z.B. umfasst die vordefinierte Rolle
Browser folgende Menge von Operationen (Tasks): Bericht
anzeigen, Ressourcen anzeigen, Ordner anzeigen, einzelne Abonnements
verwalten, Modelle anzeigen.
Eine Berechtigung
besteht in der Zuweisung einer Rolle an einen Benutzer für ein
ReportingService- Objekt. Die hierarchische Organisation der
ReportingService Objekte wird dabei für einen
Vererbungsmechanismus ausgenutzt. Alle in der Hierarchie weiter unten
stehenden Objekte erben die Berechtigungen der übergeordneten.
Diese Vererbung kann für jedes Objekt abgeschaltet, und durch
individuelle Berechtigungen ersetzt werden.
5.9.2.1 Zugriff auf Berichte unter Vista
Spezielle "Feature" in Windows Vista
entfernen beim Zugriff die Administrativen Rechte von Anmeldungen, um
so die Sicherheit zu erhöhen. So kann z.B. ein der Gruppe
Administratoren zugehöriger
User nicht mehr die Reports über den Report Manager abrufen,
obwohl er theoretisch dieses Recht hätte. Nur wenn der IE mit
als Administrator explizit ausgeführt wird, gelingt es, über
den Report-Manager die Berichte zu verwalten.
Das Problem wird
gelöst, indem die Report Manager URL den vertrauenswürdigen
Sites in den Sicherheitseinstellungen des IE zugewiesen wird.
5.10 Berichte abrufen und verteilen
Berichte können über den ReportManager,
Microsoft SQL- Server Manangment Studio als auch direkt über den
ReportServer mittels URL's abgerufen werden. Auch die automatisierte
Verteilung von Berichten an registrierte Benutzer (Abonnements) ist
möglich.
5.10.1 URL- Abruf
Berichte können direkt vom ReportServer
mittels eines komplexen URL abgerufen werden. An den URL können
dabei Konfigurationsparameter für den Reportserver, sowie
Berichtsparameter angehangen werden. Vorteil dieser Methode ist, das
der Abruf z.B. aus Webseiten heraus gestartet werden kann. In der
MSDN ist unter der SQL Server 2005 Onlinedokumentation/SQL Server
Programming Reference/Reporting Service Programming/URL- Access diese
Art des Abrufes vollständig dokumentiert.
Folgende URL ruft den
einen Bericht mit den beiden Parameter Gesamt und file_id
ab:
http://localhost/ReportServer?%2fRS-DmsMin%2fR07-Berichtsparameter&rs:Command=Render&Gesamt=1000000&file_id=506a1ddf-287e-41a9-a9ae-0017023d8181
5.10.2 Abonnements
Mittels Abonnements können Berichte nach
Zeitplänen an registrierte Benutzer verteilt werden. Zwei Arten
von Abonnements werden unterscheiden: gewöhnliche Abonnements
und datengesteuert Abonnements.
Bei gewöhnlichen Abo's wird für ein
Bericht das Übermittlungsziel und ein Zeitplan definiert.
Bei Datengesteuerten Abo's werden die Berichte an
eine Liste von Empfängern verteilt, die über eine Abfrage
erzeugt wird.
Achtung: Berichte, die über
Abonnements verteilt werden, müssen über Datenquellen auf
die Datenbanken zugreifen, die über in der Datenquelle fest
hinterlegte Anmeldeinformationen verfügen. Denn die Abonnements
werden Zeitgesteuert vom SQL- Server Agent angestossen, und da kein
user den Bericht abruft, sind auch keine integrierten Windows-
Anmeldeinformationen verfügbar. (Siehe S. 608)
Bei den gewöhnlichen Abo's gibt es zwei
verschiedene Übermittlungsmethoden:
Übermittlung an eine Dateifreigabe
Übermittlung an eine Email- Adresse