Was gibt’s Neues bei den Reporting Services 2016?

Nach den Ankündigungen auf dem PASS Summit 2015 in Seattle über die ich hier geschrieben habe sind nun schon wieder einige Monate vergangen und inzwischen sind einige der angekündigten Funktionen im SQL Server 2016 RC1 enthalten. SQL Server 2016 R1 kann man hier herunterladen. Wer die neuen Funktionen der Reporting Services 2016 ausprobieren möchte aber keine Lust (oder Zeit) hat sich einen kompletten SQL Server 2016 zu installieren kann auch auf zwei TechNet Virtual Labs zurückgreifen. Das eine Lab behandelt die Änderungen die es bei den seitenbasierten Berichten (Paginated Reports) gibt, das zweite Lab zeigt die neuen Funktionen der Reporting Services Mobile Reports (ehemals Datazen).

In diesem Artikel möchte ich die Neuerungen bei den Reporting Services zusammenfassen und zeigen was unter SQL Server 2016 möglich sein wird.

Seitenbasierte Berichte

Bei den seitenbasierten Berichten gibt es einige Neuerungen. Endlich ist es möglich die Position und das Layout der Berichtsparameter zu beeinflussen. War bisher das höchste der Gefühle die Anordnung der Berichtsparameter durch Verschieben der Reihenfolge so ist man nun viel freier bei der Anordnung der Berichtsparameter über dem Bericht geworden. Man ist auch nicht mehr nur auf zwei Spalten an Reportparametern beschränkt wie das bisher der Fall war. Bei Berichten mit vielen Parametern führte dies zu solchen Blöcken

rsbild001

Das ist besonders auf den heutzutage verwendeten großen Displays mit hoher Auflösung sehr schade, da man so einen Knubbel aus Report-Parametern am linken Bildschirmrand hat und eine recht große ungenutzte Fläche in der Mitte. Am rechten Rand hängt dann die Schaltfläche „Bericht anzeigen“.

Mit den neuen Reporting Services ist es möglich den Parameterbereich freier zu gestalten. Dazu befindet sich über dem Bericht ein Gitter in dem die Parameter frei per Drag & Drop platziert werden können. Dieses Gitter kann bis zu 8 Spalten haben und eine von mir bisher nicht ermittelte Anzahl von Zeilen (ich hab nach dem Hinzufügen der 20sten Zeile mal Schluss gemacht). Im überarbeiteten Report Builder kann man sich das Parametergitter über die Registerkarte View und dann dort über das Optionsfeld Parameters anzeigen lassen.

rsbild002

Im Parametergitter selbst kann man dann über das Kontextmenü neue Spalten hinzufügen oder vorhandene Spalten löschen, wie bei jeder anderen Tabelle auch.

rsbild003

Nach diesen Änderungen sieht das Ergebnis viel besser als bisher aus, da der Entwickler des Reports viel mehr Einfluss darauf hat wie die Parameter über dem Bericht angeordnet werden.

rsbild004

Neu sind auch die beiden Diagramm-Typen TreeMap und Sunburst mit denen man hervorragend hierarchische Daten visualisieren kann.

rsbild005

Verwendet man die beiden Diagrammtypen in einem Bericht, dann sehen sie z.B. wie folgt aus:

rsbild006

Der Report Manager, also die Website über die man die Reporting Services verwalten kann, hat ein komplettes Makeover erhalten und erstrahlt im modernen Design einer HTML 5 Webanwendung. Das bedeutet auch, dass er jetzt im responsive Design gehalten ist und sich somit an alle Bildschirmgrößen anpasst. In den CTPs und im Release Candidat 0 landet man nach dem Start des Report Managers noch auf der alten Website und kann dann oben über „Preview the new Repoting Services“ zur neuen Website wechseln.

rsbild007

Dieses Schritt fällt beim Release Candidat 1 weg und man landet direkt auf der neuen Website.

rsbild008

Was sofort auffällt ist, dass es eine Unterteilung gibt und dass die „herkömmlichen“ Reporting Services Berichte unter der Sektion Paginated Reports (also seitenbasierte Berichte) aufgeführt sind. Der Anwender hat über das Sternchen die Möglichkeit Berichte als Favoriten zu speichern. Über die drei Punkte kann man ein Menü aufrufen über das dann Funktionen verfügbar sind die sich auf den ausgewählten Bericht beziehen. Außerdem werden hier weiter Informationen zum Bericht angezeigt.

rsbild009

Klickt man auf die Schaltfläche MANAGE, so wird eine Webseite angezeigt die sicherlich schon von der alten Version der Reporting Services bekannt ist. Auf dieser Seite gibt es zahlreiche Verwaltungsfunktionen für den ausgewählten Bericht. Natürlich wurde auch diese Webseite im Vergleich mit den Vorgängerversionen stark überarbeitet.

rsbild010

Was sicherlich Anwender in größeren Unternehmensumgebungen sehr freut ist die Tatsache, dass man in der 2016er Version der Reporting Services nun endlich auch Drucken kann ohne dass ein Internet Explorer Plugin installiert werden muss. In vielen Konzernumgebungen ist es ein Problem gewesen dass die Reporting Services beim Drucken direkt aus dem Browser dieses Plugin benötigt haben. Da die Anwender in solchen Umgebungen in der Regel keine lokalen Administratoren auf Ihren Computern sind und demnach keine Software installieren können, musste das Reporting Services Druck Plugin, wie jede andere Software auch, paketiert und verteilt werden. Dies ist gerade in großen Umgebungen ein enormer Aufwand. Konnte das Plugin nicht verteilt werden haben sich die Anwender oft durch einen kleinen Workaround beholfen. Sie haben einfach den Bericht als PDF-Datei heruntergeladen und diese dann ausgedruckt. Reporting Services 2016 macht dies nun im Hintergrund selbstständig, so wie es dieser Dialog verrät und benötigt kein Plugin mehr.

rsbild011

Moderne Browser können PDFs ausdrucken, d.h. Reporting Services 2016 Berichte werden auf dem herkömmlichen Weg ausgedruckt, inklusive Browser-abhängigem Vorschaufenster. Im Internet Explorer sieht das dann so aus:

rsbild012

Apropos „moderne Browser“: Die Reporting Services 2016 erzeugen Berichte in HTML 5 und auch der neue Report Manager ist in HTML 5 entwickelt worden. Das bedeutet, dass die Reporting Services nun endlich auch in allen modernen Browsern, die HTML 5 unterstützen, angezeigt werden können. Im Screenshot sehen wir Reporting Services in Chrome.

rsbild013

Damit man vorhandene Berichte mit den neuen Reporting Services testen kann und ggf. auch noch auf die alte Rendering-Engine zurückgreifen kann, gibt es die Schaltfläche „Switch to Compatibility Mode“. Diese wird aber aller Voraussicht nach in der endgültigen Reporting Services Version wegfallen.

rsbild014

Was auch recht nett ist, ist die Möglichkeit über den URL-Parameter ?rs:Embed=true den Bericht von Reporting Services so rendern zu lassen, dass man den Bericht optimal in einen iFrame, beispielsweise in SharePoint oder in eine andere Webseite einbetten kann. Hierzu wird dieser Parameter einfach am Ende an die URL angehängt, also beispielsweise:

http://65.52.229.47/reports/report/Organization%20Expenditures?rs:Embed=true

Eine weitere spannende Funktion ist der Export des Berichts nach PowerPoint.

rsbild015

Hierbei werden Texte als Textcontainer nach PowerPoint exportiert und können dort jederzeit bearbeitet werden

rsbild017

Die Diagramme werden als eigenständige Grafiken in die PowerPoint Datei eingefügt. So ist es möglich, dass man die Größe und die Lage der Diagramme unabhängig voneinander verändern kann.

rsbild018

Mobile Berichte

Eine der auffälligsten Neuerungen der Reporting Services 2016 sind die mobilen Berichte und KPIs die von Datazen übernommen worden und in die Reporting-Services Umgebung integriert worden sind. Dabei sind einige der Datazen Paradigmen wie beispielsweise die BI-Hubs über Bord geworfen worden und durch in den Reporting Services etablierte Mechanismen (in diesem Fall die Ordner) ersetzt worden. Durch die Integration in Reporting Services können KPIs und mobile Berichte nun auch auf freigegebene Datenquellen und freigegebene Datasets zugreifen. So ist es möglich, dass Reporting-Services Berichte, KPIs und mobile Berichte auf denselben Datenmengen beruhen können. Drillthrough Szenarien sind auch denkbar bei denen man direkt aus einer KPI in einen Reporting-Services Bericht abspringt.

Die in den Report Manager eingebetteten mobilen Berichte bzw. KPIs sehen wie folgt aus.

reportingservices_013

Um eine neue KPI in den Reporting Services anzulegen geht man wie folgt vor. Zunächst muss man ein freigegebenes Dataset auf dem Report Server veröffentlichen. Dies kann man entweder über den Report Builder oder die SQL Server Data Tools erstellen. Danach klickt man in dem Ordner in dem man die KPI anlegen möchte auf die Schaltfläche Neu.

reportingservices_014

Dann wird eine Webseite angezeigt auf der man alle Optionen für die KPI einstellen kann:

reportingservices_015

Bei den Wertfeldern hat man die Auswahl ob die Werte hier manuell eingegeben werden solle oder ob sie aus einer freigegebenen Abfrage stammen sollen.

reportingservices_016

Entscheidet man sich für die Auswahl Datasetfeld und besitzt das Dataset einen Parameter, so wird eine Dialog angezeigt in dem man diesen Parameter setzen kann. Das ist eine Neuerung die es erst seit SQL Server 2016 RC1 gibt.

reportingservices_017

Klickt man hier auf Next kommt man auf eine Seite in der man angeben kann welches Feld aus dem Dataset an die ausgewählte Eigenschaft des KPIs gebunden werden soll.

reportingservices_018

Möchte man mobile Berichte erstellen benötigt man zunächst den Mobile Report Publisher. Um diesen zu installieren klickt man oben auf den Download-Pfeil und wählt ihn dann im Aufklapp-Menü aus.

reportingservices_019

Durch diese Aktion wird man auf eine Microsoft-Download Seite weitergeleitet auf der man den Mobile Report Publisher herunterladen kann. Nach der Installation öffnet sich ein Programm das frappierende Ähnlichkeit mit dem Datazen Publisher hat und auch genau so bedient wird.

reportingservices_020

Über die vier Schaltflächen oben in der linken Ecke kann man den Modus auswählen in dem der Mobile Report Publisher betrieben wird.

reportingservices_021

Die erste Schaltfläche schaltet das Programm in den Layout Modus in dem man die einzelnen Visualisierungen zum Bericht hinzufügen kann. Über die Schaltfläche Data kann man dann die Datenbindung vornehmen. Unter Settings findet man die Einstellungen die sich auf den mobilen Bericht als Ganzes beziehen und mit der Schaltfläche Preview kann man schließlich den Bericht testen. Was etwas ungewöhnlich ist wenn man bereits mit dem Datazen Publisher gearbeitet hat ist die Tatsache dass die Visualisierungen direkt nach dem Hinzufügen nicht angezeigt werden.

reportingservices_022

Ich hoffe das ist noch ein Problem des RC1 und wird in der endgültigen Version behoben, weil es natürlich viel netter ist wenn man die Diagramme hier direkt sehen kann, zumal der Mobile Report Publisher genau wie Datazen dazu in der Lage ist „Fake-Datasets“ zu erzeugen damit eine Visualisierung angezeigt werden kann.

reportingservices_023

Für einen Fehler spricht auch die Tatsache dass im Layout-Modus die Diagramme korrekt angezeigt werden nachdem man einmal die Datenbindung (egal ob Echt-Daten oder Fake-Daten) hergestellt hat.

reportingservices_024

Wie bei Datazen ist auch hier die Master-Ansicht des Berichtes die Ansicht die auf einem PC im Browser dargestellt wird. In der Masteransicht werden alle Elemente definiert. Über die Schaltfläche rechts oben kann man zwischen Master-Ansicht, Tablet und Smartphone umschalten.
reportingservices_025

Schaltet man beispielsweise auf die Phone-Ansicht um, so hat man deutlich weniger Platz zur Verfügung auf dem man die Elemente der Masteransicht anordnen kann. Man ist bei der Gestaltung der vorhandenen Elemente völlig frei und kann auch Elemente weglassen die in der Phone-Ansicht nicht so viel Sinn machen oder die nicht so wichtig sind. Im Beispiel habe ich das Control „State Sales“ nicht in der mobilen Ansicht „verbaut“.

reportingservices_026

 

In der Datenansicht gibt es rechts oben drei wichtige Schaltflächen. Über die Schaltflächen „Add Data“ kann man Datenquellen zum Bericht hinzufügen, mit der Schaltfläche „Refresh All Data“ kann man die vorhandenen Datenquellen aktualisieren und über „Export All Data“ kann man die vorhandenen Daten nach Excel exportieren.

reportingservices_027

„Export all Data“ ist besonders nützlich um herauszufinden wie Datazen bzw. nun die mobilen Berichte die Daten angeliefert bekommen müssen. Im Gegensatz zu Power BI hat man bei den mobilen Berichten nicht die Möglichkeit die Daten die aus der Datenquelle kommen noch zu verändern. Die mobilen Berichte sind beim erforderlichen Datenformat rigoros und an die Eigenschaften der Visualisierungen können nur die Elemente gebunden werden, die auch die entsprechenden Datenformate besitzen. So ist es beispielsweise nicht möglich an eine Eigenschaft die einen Datumswert benötigt ein String-Feld zu binden, selbst wenn in dem String-Feld nur gültige Datensätze stehen.

Klickt man auf die Schaltfläche „Add Data“, so kann man im nächsten Schritt auswählen ob die Daten aus einer lokalen Excel-Datei oder vom Report Server kommen sollen.

reportingservices_028

Wählt man die lokale Excel Datei, so werden die Daten aus der Excel-Datei extrahiert und auf dem Server gespeichert. Bei der Auswahl „Report Server“ muss man Verbindungsinformationen zu einem Report-Server angeben.

reportingservices_029

 

Danach werden die auf dem Report Server freigegebene Datasets angezeigt und man kann sich die Datasets auswählen die für den Bericht verwendet werden sollen.

reportingservices_030

Natürlich kann man auch hier Datenquellen mischen, d.h. es können sowohl Daten aus einer lokalen Excel-Datei wie auch aus einem freigegebenen Dataset auf dem Report Server in einem Bericht angezeigt werden. Im Gegensatz zu PowerBI kann man diese Daten aber nicht datenquellenübergreifend miteinander kombinieren und in einem Diagramm anzeigen. Das ist der Tatsache geschuldet, dass die Daten in den mobilen Berichten nicht weiter angepasst werden können. Sofern die Datenquellen über einen gemeinsamen Schlüssel verfügen ist es aber möglich über diesen Schlüssel eine datenquellenübergreifende Filterung einzurichten.

Custom Branding

Die Reporting Services vom SQL Server 2016 unterstützen zum ersten Mal in der Geschichte der Reporting Services über die Möglichkeit ein benutzerdefiniertes Branding zu verwenden. Unter dem Begriff „Branding“ versteht man die optische Anpassung der Reporting Services. So kann man die Oberfläche der Reporting-Services beispielsweise an das Firmen CI anpassen. Hier gibt es einen interessanten Artikel der Reporting Services Produktgruppe wie genau man custom brand package für die Reporting Services erstellt. Im Prinzip ist dieses custom brand package nichts anderes als eine ZIP-Datei in der sich zwei oder drei Dateien befinden:

  • metadata.xml
  • colors.json
  • logo.png

Die Datei metadata.xml beschreibt den Inhalt des brand packages. Ein Beispiel für eine solche metadata.xml Datei sieht wie folgt aus:

<?xml version="1.0" encoding="utf-8"?>
<SystemResourcePackage xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/systemresourcepackagemetadata"
  type="UniversalBrand"
  version="2.0.2"
  name="Xbox">
  <Contents>
    <Item key="colors" path="colors.json" />
    <Item key="logo" path="logo.png" />
  </Contents>
</SystemResourcePackage>

Wichtig an dieser Datei sind die Zeilen 5, 7 und 8. In Zeile 5 wird der Name des custom brand packages angegeben. Das Beispiel habe ich vom Xbox Package aus dem oben angegebenen Blog-Eintrag. In Zeile 7 und 8 wird angegeben in welcher Datei im Package sich das Logo befindet und in welcher Datei die Farben.

Die Logo-Datei ist relativ einfach. Dabei muss es sich um ein PNG-Bild handeln. Die Maße der Datei sind egal. Das Bild wird so herunterskaliert, dass es in den Logo-Bereich passt. Im Beispiel sieht das dann so aus:

reportingservices_031
Bei der Datei colors.json handelt es sich um eine JSON-Datei, die sich in zwei große Abschnitte unterteilt. Zum einen gibt es den Abschnitt „interface“ zum anderen den Abschnitt „theme“. Im Abschnitt „interface“ werden die Farben angegeben die für den Report-Manager verwendet werden sollen. Auch hierzu ein kleines Beispiel:

{
    "name":"Xbox",
    "version":"1.0",
    "interface":{
        "primary":"#369927",
        "primaryAlt":"#3ba734",
        "primaryAlt2":"#3b8636",
        "primaryAlt3":"#3ba734",
        "primaryAlt4":"#37ae31",
        "primaryContrast":"#fff",
        "secondary":"#136d0d",
        "secondaryAlt":"#0e520a",
        "secondaryAlt2":"#166211",
        "secondaryAlt3":"#666",
        "secondaryContrast":"#fff",
        "neutralPrimary":"#222",

Die Farbwerte bestehen, wie in JSON üblich, aus einem Key-Value Paar. Im Bereich Interface gibt es dann noch einmal unterschiedliche Bereiche die die Farben von bestimmten Teilen der Benutzeroberfläche steuern.

Sektionsteuert die Farben von...
primarySchaltflächen, Hover-Farben
secondaryTitelzeile, Suchleiste, das Menü links, Textfarbe für diese Bereiche
neutral primaryHome Hintergrund, Hintergrund Reportbereich
neutral secondaryHintergrund Textfeld, Hintergunde Ordneroptionen, Einstellungs-Menü
neutral tertiaryHintergrund Website-Einstellungen
Danger/Warning/Successder entsprechenden Meldungen
KPI colors (Good, Bad, Neutral, None)der KPI-Zustände

Im Bereich Theme werden die Farben angegeben die im Theme für die mobilen Berichte verwendet werden. Auch hierzu ein Beispiel:

    "theme":{
        "dataPoints":[
            "#6ebc19",
            "#f6b100",
            "#8a623d",
            "#82bfd1",
            "#408501",
            "#c3a882",
            "#c2622d",
            "#2d8890",
            "#6d8c53",
            "#61421f",
            "#b9aa24",
            "#808080"
        ],

        "good":"#67b212",
        "bad":"#c31016",
        "neutral":"#d2ae05",
        "none":"#2c2c2c",

        "background":"#538012",
        "foreground":"#fff",
        "mapBase":"#90db28",
        "panelBackground":"#1e2b0a",
        "panelForeground":"#fff",
        "panelAccent":"#6ebc19",
        "tableAccent":"#6ebc19",

        "altBackground":"#fff",
        "altForeground":"#222",
        "altMapBase":"#408501",
        "altPanelBackground":"#ececec",
        "altPanelForeground":"#fff",
        "altPanelAccent":"#6ebc19",
        "altTableAccent":"#6ebc19"
    }

Auch hier finden sich natürlich Key-Value Paare und es ist relativ eindeutig welche Farben dort gemeint sind. Das so definierte Theme findet sich dann auch im Mobile Report Publisher wieder. Im Beispiel sieht das dann so aus:

reportingservices_032

Möchte man selbst custom brand packages erstellen, so bietet Microsoft hier ein Beispiel-Package an. Die Idee dieses Beispiel-Packages ist es, die einzelnen Elemente der Oberfläche in möglichst auffälligen und unterschiedlichen (sprich häßlichen) Farben einzufärben, so dass man direkt sehen kann welche Farbe in der colors.json-Datei Auswirkungen auf welches Objekt in der Oberfläche hat.

Fazit

Alles in allem kann man sagen, dass es beim SQL Server 2016 viele Neuerungen bei den Reporting Services gibt, d.h. Microsoft hat wirklich Wort gehalten und „The box is back…“. Neben der Integration von Datazen die meiner Meinung nach recht gelungen ist gibt es aber ein paar kleinere Wehmutstropfen und Stellen an denen man sehen kann dass Reporting Services und Datazen noch nicht zu 100% zusammengeführt worden sind. Etwas „strange“ sieht es aus wenn man in einer Ansicht im Report Manager sowohl mobile Berichte wie auch seitenbasierte Berichte anzeigen lässt. Bei den mobilen Berichten gibt es ein Thumbnail, bei den seitenbasierten nicht. Auch gibt es leider keine „Themes“ für seitenbasierte Berichte, d.h. auch unter Reporting Services 2016 darf man sich das Custom Branding der Berichte noch „von Hand“ basteln. Die Datazen-Berichte sind im Vergleich zu den Reporting Services Berichten relativ „starr“, da man, im Gegensatz zu Reporting Services, hier nicht die Möglichkeit hat über Ausdrücke auf die Eigenschaften in den mobilen Reports Einfluss zu nehmen. Ich hoffe, dass die beiden Produkte in der Zukunft weiter miteinander verschmelzen. Wünschenswert wären es wenn auf der einen Seite die mobilen Berichte und KPIs dynamischer werden und auf der anderen Seite es (endlich) Theming für die Reporting Services geben würde. Grundsätzilch finde ich die Reporting Services 2016 aber gut und eine Schritt in die richtige Richtung und freue mich auf das Release.

EDIT 31.03.2016: Bei den Reporting Services 2016 (zumindest in der RC 1 Version) scheint es in manchen Umgebungen zu Problemen zu kommen. Wenn man den (Windows) Server neu startet kann man nicht auf die Website der Reporting Services zugreifen und das obwohl diese eigentlich laufen. Der kleine Fix den man hier machen muss um das Problem zu beheben ist einfach, dass man den Reporting Services Dienst noch mal neu startet und dann läuft es auch schon wieder.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

%d Bloggern gefällt das: