Generieren von Datenfeeds aus Berichten

Die Reporting Services-Atom-Renderingerweiterung generiert ein Atom-Dienstdokument, in dem die aus einem Bericht und aus den Datenbereichen in einem Bericht verfügbaren Datenfeeds aufgeführt sind. Mit dieser Erweiterung generieren Sie Atom-kompatible Datenfeeds, die von Anwendungen gelesen bzw. zwischen Anwendungen ausgetauscht werden können, die aus Berichten generierte Datenfeeds nutzen können. Sie können z. B. die Atom-Renderingerweiterung zum Generierten von Datenfeeds verwenden, die dann im SQL Server 2008 R2PowerPivot-Client verwendet werden können.

Im Atom-Dienstdokument ist mindestens ein Datenfeed für jeden Datenbereich in einem Bericht aufgeführt. Abhängig vom Typ des Datenbereichs und den darin angezeigten Daten, könnte Reporting Services mehrere Datenfeeds aus einem Datenbereich generieren. Eine Matrix oder ein Diagramm kann beispielsweise mehrere Datenfeeds bereitstellen. Wenn die Atom-Renderingerweiterung das Atom-Dienstdokument erstellt, wird für jeden Datenfeed ein eindeutiger Bezeichner erstellt. Sie verwenden den Bezeichner in der URL, um auf den Inhalt des Datenfeeds zuzugreifen.

Die Atom-Renderingerweiterung generiert Daten für einen Datenfeed auf ähnliche Weise, wie die CSV-(Comma-Separated Value-)Renderingerweiterung Daten in eine CSV-Datei rendert. Wie eine CSV-Datei entspricht ein Datenfeed einer vereinfachten Darstellung der Berichtsdaten. Beispiel: In einer Tabelle mit einer Zeilengruppe, in der die Verkäufe innerhalb einer Gruppe addiert werden, wird die Summe in jeder Datenzeile wiederholt, und es gibt keine separate Zeile, die nur die Summe enthält.

Atom-Dienstdokumente und -Datenfeeds können mit dem Berichts-Manager, Berichtsserver oder einer mit Reporting Services integrierten SharePoint-Website generiert werden.

Atom bezieht sich auf zwei verwandte Standards. Das Atom-Dienstdokument entspricht der RFC 5023 APP-(Atom Publishing Protocol-)Spezifikation und die Datenfeeds der RFC 4287 ASF-(Atom Syndication Format-)Spezifikation.

Die folgenden Abschnitte enthalten zusätzliche Informationen zur Verwendung der Atom-Renderingerweiterung:

Berichtsdaten als Datenfeeds

Atom-Dienstdokument

Datenfeeds

FlatteningReportData

Atom-Rendering

Atom-Spezifikationen

ADO.NET Data Services

Berichte als Datenfeeds

Sie können einen Produktionsbericht als Datenfeed exportieren oder einen Bericht erstellen, dessen Hauptzweck in der Bereitstellung in Daten in Form von Datenfeeds für Anwendungen besteht. Durch die Verwendung von Berichten als Datenfeed haben Sie eine zusätzliche Möglichkeit, Daten für Anwendungen bereitzustellen, auf die nicht problemlos über Clientdatenanbieter zugegriffen werden kann, oder wenn Sie es vorziehen, die Komplexität der Datenquelle zu verbergen und die Datennutzung zu vereinfachen. Ein weiterer Vorteil der Verwendung von Berichtsdaten als Datenfeed besteht darin, dass Sie Funktionen von Reporting Services wie den Berichts-Manager, Sicherheits- und Planungsfunktionen sowie Berichtsmomentaufnahmen zur Verwaltung der Berichte verwenden können, die Datenfeeds bereitstellen.

Um die Atom-Renderingerweiterung optimal nutzen zu können, sollten Sie verstehen, wie der Bericht in Datenfeeds gerendert wird. Bei Verwendung vorhandener Berichte ist es hilfreich, im Voraus zu wissen, welche Datenfeeds aus den Berichten generiert werden. Wenn Sie Berichte speziell zur Verwendung als Datenfeeds erstellen, haben Sie die Möglichkeit, die enthaltenen Daten und das Berichtslayout genau auf eine optimale Nutzung des Datenfeeds abzustimmen, was einen erheblichen Vorteil bietet.

Atom-Dienstdokument (ATOMSVC-Datei)

In einem Atom-Dienstdokument ist eine Verbindung mit mindestens einem Datenfeed angegeben. Bei der Verbindung handelt es sich mindestens um eine einfache URL für den Datendienst, der den Feed erzeugt.

Wenn Sie Berichtsdaten mit der Atom-Renderingerweiterung rendern, sind im Atom-Dienstdokument die für einen Bericht verfügbaren Datenfeeds aufgeführt. Im Dokument ist mindestens ein Datenfeed für jeden Datenbereich im Bericht enthalten. Tabellen und Messgeräte generieren jeweils nur einen Datenfeed, während Matrizen, Listen und Diagramme je nach den darin angezeigten Daten mehrere Datenfeeds generieren könnten.

Das folgende Diagramm zeigt einen Bericht, in dem zwei Tabellen und ein Diagramm verwendet werden.

Bericht mit zwei Tabellen und einem Diagramm

Das aus diesem Bericht generierte Atom-Dienstdokument enthält drei Datenfeeds: einen für jede Tabelle und einen für das Diagramm.

Die Matrixdatenbereiche könnten abhängig von der Struktur der Matrix mehr als einen Datenfeed aufweisen. Das folgende Diagramm zeigt einen Bericht mit einer Matrix, die zwei Datenfeeds generiert.

Matrixdatenbereich mit dynamischen Peerspalten

Das aus diesem Bericht generierte Atom-Dienstdokument enthält zwei Datenfeeds: einen für jede der dynamischen gleichrangigen Spalten "Territory" und "Year". Das folgende Diagramm veranschaulicht den Inhalt der einzelnen Datenfeeds.

Datenfeeds aus Matrix mit dynamischen Peerspalten

Beispiel für ein Atom-Dienstdokument

Der folgende XML-Inhalt stellt ein aus einem Bericht mit einer Tabelle generiertes Atom-Dienstdokument dar.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<service xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">

<workspace>

<atom:title>Product Sales Summary</atom:title>

<collection href="https://ServerName/ReportServer?%2fProduct+Sales+Summary&rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aDataFeed=xAx0x1">

<atom:title>table</atom:title>

</collection>

</workspace>

</service>

Datenfeeds

Bei einem Datenfeed handelt es sich um eine XML-Datei mit einem konsistenten Tabellenformat, das sich nie ändert, und veränderbaren Daten, die mit jeder Berichtsausführung variieren können. Die von Reporting Services generierten Datenfeeds verfügen über das gleiche Format wie die von ADO.NET Data Services generierten Feeds.

Ein Datenfeed enthält zwei Abschnitte: Header und Daten. Die Atom-Spezifikation definiert die Elemente in den beiden Abschnitten. Der Header enthält Informationen wie das für die Datenfeeds zu verwendende Zeichencodierungsschema.

Headerabschnitt

Im folgenden XML-Code wird der Headerabschnitt eines Datenfeeds veranschaulicht.

<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">

<title type="text"></title>

<id>uuid:1795992c-a6f3-40ec-9243-fbfd0b1a5be3;id=166321</id>

<updated>2009-05-08T23:09:58Z</updated>

Datenabschnitt

Der Datenabschnitt der Datenfeeds enthält ein <entry>-Element für jede Zeile im vereinfachten von der Atom-Renderingerweiterung generierten Rowset.

Das folgende Diagramm zeigt einen Bericht, der Gruppen und Gesamtsummen verwendet.

Verkaufszusammenfassungsbericht für ein Produkt mit eingekreisten Werten

Der folgende XML-Code entspricht einem <entry>-Element aus diesem Bericht in einem Datenfeed. Beachten Sie, dass das <entry>-Element die Gesamtsummen der Verkäufe und Bestellungen der einzelnen Gruppe sowie die Gesamtsummen der Verkäufe und Bestellungen aller Gruppen enthält. Das <entry>-Element enthält alle Werte im Bericht.

<entry><id>uuid:1795992c-a6f3-40ec-9243-fbfd0b1a5be3;id=166322</id><title type="text"></title><updated>2009-05-08T23:09:58Z</updated><author /><content type="application/xml"><m:properties>

<d:ProductCategory_Value>Accessories</d:ProductCategory_Value>

<d:OrderYear_Value m:type="Edm.Int32">2001</d:OrderYear_Value>

<d:SumLineTotal_Value m:type="Edm.Decimal">20235.364608</d:SumLineTotal_Value>

<d:SumOrderQty_Value m:type="Edm.Int32">1003</d:SumOrderQty_Value>

<d:SumLineTotal_Total_2_1 m:type="Edm.Decimal">1272072.883926</d:SumLineTotal_Total_2_1>

<d:SumOrderQty_Total_2_1 m:type="Edm.Double">61932</d:SumOrderQty_Total_2_1>

<d:SumLineTotal_Total_2_2 m:type="Edm.Decimal">109846381.399888</d:SumLineTotal_Total_2_2>

<d:SumOrderQty_Total_2_2 m:type="Edm.Double">274914</d:SumOrderQty_Total_2_2></m:properties></content>

</entry>

Arbeiten mit Datenfeeds

Alle vom Bericht generierten Datenfeeds enthalten die Berichtselemente, die zum Bereich des übergeordneten Elements des Datenbereichs gehören, aus dem die Datenfeeds generiert werden. . Angenommen, ein Bericht enthält mehrere Tabellen und ein Diagramm. Textfelder im Hauptteil des Berichts enthalten beschreibenden Text zu jedem Datenbereich. Jeder Eintrag in jedem vom Bericht generierten Datenfeed enthält den Wert des Textfelds. Lautete der Text z. B. "Diagramm zur Anzeige der durchschnittlichen Umsätze nach Vertriebsgebiet und Monat", wäre dieser Text in jeder Zeile aller drei Datenfeeds enthalten.

Wenn das Berichtslayout hierarchische Datenbeziehungen, z. B. geschachtelte Datenbereiche, umfasst, sind diese Beziehungen Teil des vereinfachten Rowsets der Berichtsdaten.

Die Datenzeilen für geschachtelte Datenbereiche sind in der Regel breit, insbesondere, wenn die geschachtelten Tabellen und die Matrizen Gruppen und Gesamtsummen beinhalten. Es ist u. U. hilfreich, den Bericht in einen Datenfeed zu exportieren und diesen anzuzeigen, um sicherzustellen, dass die generierten Daten Ihren Erwartungen entsprechen.

Wenn die Atom-Renderingerweiterung das Atom-Dienstdokument erstellt, wird für den Datenfeed ein eindeutiger Bezeichner erstellt. Sie verwenden den Bezeichner in der URL, um den Inhalt des Datenfeeds anzuzeigen. Das oben dargestellte Beispiel für ein Atom-Dienstdokument enthält die URL https://ServerName/ReportServer?%2fProduct+Sales+Summary&rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aDataFeed=xAx0x1". In der URL ist der Bericht (Product Sales Summary), das Atom-Renderingformat (ATOM) und der Name des Datenfeeds (xAx0x1) angegeben.

Die Namen der Berichtselemente entsprechen den in der Berichtsdefinitionssprache (Report Definition Language, RDL) verwendeten Standardnamen, die häufig weder intuitiv noch einfach zu erinnern sind. Der Standardname der ersten in einen Bericht eingefügten Matrix lautet beispielsweise "Tablix 1". Die Datenfeeds verwenden diese Namen.

Um die Arbeit mit Datenfeeds zu vereinfachen, können Sie mithilfe der DataElementName-Eigenschaft des Datenbereichs Anzeigenamen bereitstellen. Wenn Sie einen Wert für DataElementName angeben, verwendet das untergeordnete <d>-Datenelement diesen Namen und nicht den standardmäßigen Datenbereichsnamen. Beispiel: Wenn der Standardname eines Datenbereichs Tablix1 lautet und für DataElementName SalesByTerritoryYear festgelegt wurde, verwendet das <d>-Element im Datenfeed SalesByTerritoryYear. Wenn der Datenbereich, wie der oben beschriebene Matrixbericht, zwei Datenfeeds aufweist, lauten die in den Datenfeeds verwendeten Namen SalesByTerritoryYear _Territory und SalesByTerritoryYear _Year.

Wenn Sie die im Bericht und die im Datenfeed angezeigten Daten vergleichen, werden Sie möglicherweise einige Unterschiede feststellen. In Berichten werden häufig formatierte numerische und Datums-/Uhrzeitangaben angezeigt, wohingegen der Datenfeed unformatierte Daten enthält.

Ein Datenfeed wird mit der Dateinamenerweiterung .atom gespeichert. Sie können einen Text- oder XML-Editor z. B. Editor oder XML-Editor verwenden, um Dateistruktur und Inhalt anzuzeigen.

Vereinfachen von Berichtsdaten

Der Atom-Renderer stellt Berichtsdaten als vereinfachte Rowsets in einem XML-Format bereit. Die Regeln zum Vereinfachen von Datentabellen sind bis auf einige Ausnahmen mit denen des CSV-Renderers identisch:

  • Elemente im Bereich werden bis auf Detailebene vereinfacht. Die Textfelder auf oberster Ebene werden im Gegensatz zum CSV-Renderer in jedem in den Datenfeed geschriebenen Eintrag angezeigt.

  • Berichtsparameterwerte werden in jeder Ausgabezeile gerendert.

Hierarchische und gruppierte Daten müssen vereinfacht werden, damit sie im Atom-kompatiblen Format dargestellt werden können. Die Renderingerweiterung vereinfacht den Bericht zu einer Baumstruktur, die die geschachtelten Gruppen innerhalb des Datenbereichs darstellt. So vereinfachen Sie den Bericht:

  • Eine Zeilenhierarchie wird vor einer Spaltenhierarchie vereinfacht.

  • Elemente der Zeilenhierarchie werden vor Elementen der Spaltenhierarchie in den Datenfeed gerendert.

  • Spalten werden wie folgt sortiert: Textfelder im Hauptteil von links nach rechts und von oben nach unten, gefolgt von Datenbereichen von links nach rechts und von oben nach unten.

  • Innerhalb eines Datenbereichs werden die Spalten wie folgt sortiert: Eckelemente, Zeilenhierarchieelemente, Spaltenhierarchieelemente und Zellen

  • Peerdatenbereiche sind Datenbereiche oder dynamische Gruppen, die einen allgemeinen Datenbereich oder einen dynamischen Vorgänger gemeinsam nutzen. Peerdaten werden durch die Verzweigung der vereinfachten Struktur identifiziert.

Weitere Informationen finden Sie unter Arbeiten mit Tablix-Datenbereichen.

Atom-Renderingregeln

Beim Rendern eines Datenfeeds ignoriert die Atom-Renderingerweiterung die folgenden Informationen:

  • Formatierung und Layout

  • Seitenkopf

  • Seitenfuß

  • Benutzerdefinierte Berichtselemente

  • Rechtecke

  • Linien

  • Bilder

  • Automatische Teilergebnisse

Die verbleibenden Berichtselemente werden von oben nach unten und dann von links nach rechts sortiert. Anschließend wird jedes Element in eine Spalte gerendert. Enthält der Bericht geschachtelte Datenelemente, wie Listen oder Tabellen, werden die übergeordneten Elemente in jeder Zeile wiederholt.

In der folgenden Tabelle wird die Darstellung von Berichtselementen beim Rendern angegeben:

Element

Renderingverhalten

Tabelle

Das Rendering erfolgt durch Erweitern der Tabelle und Erstellen einer Zeile und Spalte für jede Zeile und Spalte auf der untersten Detailebene. Teilergebniszeilen und -spalten weisen keine Zeilen- und Spaltenüberschriften auf. Drillthroughberichte werden nicht unterstützt.

Matrix

Das Rendering erfolgt durch Erweitern der Matrix und Erstellen einer Zeile und Spalte für jede Zeile und Spalte auf der untersten Detailebene. Teilergebniszeilen und -spalten weisen keine Zeilen- und Spaltenüberschriften auf.

Liste

Für jede Detailzeile oder Instanz in der Liste wird ein Datensatz gerendert.

Unterbericht

Das übergeordnete Element wird für jede Instanz des Inhalts wiederholt.

Diagramm

Es wird ein Datensatz mit allen Diagrammbezeichnungen für jeden Diagrammwert gerendert.

Datenbalken

Rendert wie ein Diagramm. Ein Datenbalken enthält normalerweise keine Hierarchien oder Bezeichnungen.

Sparkline

Rendert wie ein Diagramm. Eine Sparkline enthält normalerweise keine Hierarchien oder Bezeichnungen.

Messgerät

Es wird als einzelner Datensatz mit dem Minimal- und Maximalwert der linearen Skala, dem Start- und Endwert des Bereichs und dem Wert des Zeigers gerendert.

Indikator

Es wird als einzelnes Element mit dem Namen des aktiven Zustands, den verfügbaren Zuständen und dem Datenwert als Attribute gerendert.

Karte

Generiert einen Datenfeed für jeden Kartendatenbereich. Wenn mehrere Kartenebenen den gleichen Datenbereich verwenden, sind diese alle im Datenfeed enthalten. Der Datenfeed umfasst einen Datensatz mit den Bezeichnungen und Werten der einzelnen Kartenelemente der Kartenebene.

Atom-Spezifikationen

Der Atom 1.0-Standard umfasst zwei Spezifikationen für das Veröffentlichen und Strukturieren von XML-Daten:

  • RFC5023 bezeichnet das Atom Publishing Protocol (APP), in dem beschrieben wird, wie Dienste erkannt und Pfade zu einem Datenobjekt aufgebaut werden. Eine von der Atom-Renderingerweiterung erstellte Datendienstdokument-Datei (ATOMSVC) entspricht der in diesem Protokoll beschriebenen Definition für Dienstdokumente. Weitere Informationen finden Sie unter Atom 1.0 Publishing Protocol auf der IETF-Website.

  • RFC4287 bezeichnet das Atom Syndication Format (ASF), das angibt, auf welche Weise die Daten in einer Anwendung von einem clientseitigen Datenleser interpretiert und dargestellt werden. Weitere Informationen finden Sie unter Atom 1.0 Syndication Format auf der IETF-Website.

ADO.NET Data Services

Die von Reporting Services generierten Datenfeeds verfügen über das gleiche Format wie die von ADO.NET generierten Feeds. Die folgenden Links enthalten nützliche Informationen und praktische Anweisungen zum Verwenden der ADO.NET Data Services:

Übersicht: ADO.NET Data Services

Verwenden von ADO.NET Data Services

Schnellstart von Datendiensten (ADO.NET Data Services-Framework)

Siehe auch

Konzepte

ATOM-Geräteinformationseinstellungen

Exportieren als CSV-Datei

Exportieren von Berichten

Verwalten von PowerPivot-Datenfeeds