Génération de flux de données à partir de rapports (Générateur de rapports et SSRS)Generating Data Feeds from Reports (Report Builder and SSRS)

L’extension de rendu Reporting ServicesReporting Services Atom génère un document de service Atom qui répertorie les flux de données disponibles d’un rapport paginé et les flux de données des régions de données d’un rapport.The Reporting ServicesReporting Services Atom rendering extension generates an Atom service document that lists the data feeds available from a paginated report and the data feeds from the data regions in a report. Cette extension est utilisée pour générer des flux de données compatibles avec Atom pouvant être lus et échangés avec des applications qui prennent en charge les flux de données générés à partir de rapports.You use this extension to generate Atom-compliant data feeds that are readable and exchangeable with applications that can consume data feeds generated from reports. Par exemple, vous pouvez utiliser l’extension de rendu Atom pour les flux de données générées que vous pouvez ensuite utiliser dans Power Pivot ou Power BI.For example, you can use the Atom rendering extension to generated data feeds that you can then use in Power Pivot or Power BI.

Le document de service Atom répertorie au moins un flux de données pour chaque région de données d'un rapport.The Atom service document lists at least one data feed for each data region in a report. Selon le type de région de données et les données affichées par cette région, Reporting ServicesReporting Services peut générer plusieurs flux de données à partir d'une région de données.Depending on the type of data region and the data that the data region displays, Reporting ServicesReporting Services might generate multiple data feeds from a data region. Par exemple, une matrice ou un graphique peut fournir plusieurs flux de données.For example, a matrix or chart can provide multiple data feeds. Lorsque l'extension de rendu Atom crée le document de service Atom, un identificateur unique est créé pour chaque flux de données et vous utilisez cet identificateur dans l'URL pour accéder au contenu du flux de données.When the Atom rendering extension creates the Atom service document, a unique identifier is created for each data feed and you use the identifier in the URL to access the content of the data feed.

La façon dont l'extension de rendu Atom génère des données pour un flux de données est semblable à la façon dont l'extension de rendu à valeurs séparées par des virgules (CSV) restitue des données dans un fichier CSV.The way that the Atom rendering extension generates data for a data feed is similar to how the Comma-Separated Value (CSV) rendering extension renders data to a CSV file. Comme un fichier CSV, un flux de données est une représentation aplatie des données de rapport.Like a CSV file, a data feed is a flattened representation of the report data. Par exemple, un tableau comprenant un groupe de lignes qui additionne les chiffres des ventes au sein d'un groupe répète la somme dans chaque ligne de données et il n'existe aucune ligne séparée contenant uniquement la somme.For example, a table with a row group that sums the sales within a group repeats the sum in every data row and there is no separate row that contains only the sum.

Vous pouvez générer des documents de service Atom et des flux de données à l’aide du portail web Reporting ServicesReporting Services , du service Report Server ou d’un site SharePoint intégré à Reporting ServicesReporting Services.You can generate Atom service documents and data feeds using the Reporting ServicesReporting Services web portal, Report Server, or a SharePoint site that is integrated with Reporting ServicesReporting Services.

Atom applique deux normes connexes.Atom applies to a pair of related standards. Le document de service Atom est conforme à la spécification de protocole de publication Atom RFC 5023 et les flux de données sont conformes à la spécification de protocole de format de syndication Atom RFC 4287.The Atom service document conforms to the RFC 5023 Atom publishing protocol specification and the data feeds conform to the RFC 4287 Atom syndication format protocol specification.

Les sections suivantes présentent des informations supplémentaires concernant l'utilisation de l'extension de rendu Atom :The following sections provide additional information about how to use the Atom rendering extension:

Vous pouvez créer et modifier des fichiers de définition de rapport (.rdl) paginés dans le Générateur de rapports et dans le Concepteur de rapports dans SQL Server Data Tools.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. Chaque environnement de création offre différentes possibilités pour créer, ouvrir et enregistrer des rapports et des éléments connexes.Each authoring environment provides different ways to create, open, and save reports and related items.

Rapports en tant que flux de données Reports as Data Feeds

Vous pouvez exporter un rapport de production en tant que flux de données ou créer un rapport dont l'objectif principal est de fournir des données, sous forme de flux de données, aux applications.You can export a production report as a data feed or you can create a report whose primary purpose is provide data, in the form of data feeds, to applications. L'utilisation de rapports en tant que flux de données vous offre une méthode supplémentaire pour fournir des données aux applications lorsque ces données ne sont pas facilement accessibles via des fournisseurs de données clients, ou lorsque vous préférez masquer la complexité de la source de données et faciliter l'utilisation des données.Using reports as a data feed gives you an additional way to provide data to applications when the data is not easy to access through client data providers, or when you prefer to hide the complexity of the data source and make it simpler to use the data. Un autre avantage de l’utilisation des données de rapport en tant que flux de données est que vous pouvez utiliser des fonctionnalités Reporting ServicesReporting Services telles que la sécurité, la planification et les instantanés de rapport pour gérer les rapports à l’origine des flux de données.Another benefit of using report data as a data feed is that you can use Reporting ServicesReporting Services features such as security, scheduling, and report snapshots to manage the reports that provide data feeds.

Pour tirer au mieux profit de l'extension de rendu Atom, vous devez comprendre comment le rapport est restitué dans des flux de données.To get the most from the Atom rendering extension, you should understand how the report is rendered into data feeds. Si vous utilisez des rapports existants, il est utile de pouvoir prévoir quels flux de données seront générés par les rapports ; si vous écrivez un rapport spécifiquement en vue d'une utilisation en tant que flux de données, la capacité d'inclure les données et d'ajuster la mise en page du rapport pour optimiser l'utilité des flux de données constitue également un avantage précieux.If you are using existing reports, being able to predict what the data feeds the reports will generate is useful; if you are writing report specifically for use as data feeds, being able to include the data and fine tune the report layout to maximize the usefulness of the data feeds is valuable.

Pour plus d’informations, consultez Générer des flux de données à partir d’un rapport (Générateur de rapports et SSRS).For more information, see Generate Data Feeds from a Report (Report Builder and SSRS).

Document de service Atom (fichier .atomsvc) Atom Service Document (.atomsvc file)

Un document de service Atom spécifie une connexion à un ou plusieurs flux de données.An Atom service document specifies a connection to one or more data feeds. Au minimum, la connexion est une URL simple vers le service de données qui génère le flux.At a minimum, the connection is a simple URL to the data service that produces the feed.

Lorsque vous restituez les données de rapport à l'aide de l'extension de rendu Atom, le document de service Atom répertorie les flux de données disponibles pour un rapport.When you render report data by using the Atom rendering extension, the Atom service document lists the data feeds available for a report. Le document répertorie au moins un flux de données pour chaque région de données du rapport.The document lists at least one data feed for each data region in the report. Les tables et jauges génèrent chacune un seul flux de données, mais les matrices, listes et graphiques peuvent en générer plusieurs en fonction des données qu'ils affichent.Tables and gauges generate only one data feed each, but matrices, lists, and charts might generated multiple depending on the data they display.

Le diagramme ci-dessous illustre un rapport utilisant deux tables et un graphique.The following diagram shows a report that uses two tables and a chart.

RS_Atom_TableAndChartDataFeedsRS_Atom_TableAndChartDataFeeds

Le document de service Atom généré à partir de ce rapport inclut trois flux de données, un pour chaque table et un pour le graphique.The Atom service document generated from this report includes three data feeds, one for each table and one for the chart.

Les régions de données de matrice peuvent avoir plusieurs flux de données, selon la structure de la matrice.The matrix data regions might have more than one data feed, depending on the structure of the matrix. Le diagramme ci-dessous illustre un rapport utilisant une matrice qui génère deux flux de données.The following diagram shows a report that uses a matrix that generates two data feeds.

RS_Atom_PeerDynamicColumnsRS_Atom_PeerDynamicColumns

Le document de service Atom généré à partir de ce rapport inclut deux flux, un pour chacune des colonnes homologues dynamiques : Territory et Year.The Atom service document generated from this report includes two data feeds, one for each of the dynamic peer columns: Territory and Year. Le diagramme ci-dessous illustre le contenu de chaque flux.The following diagram shows the content of each data feed.

RS_Atom_PeerDynamicDataFeedsRS_Atom_PeerDynamicDataFeeds

Flux de données Data Feeds

Un flux est un fichier XML ayant un format tabulaire cohérent qui ne varie pas dans le temps et des données variables qui peuvent être différentes chaque fois que le rapport est exécuté.The data feed is an XML file that has a consistent tabular format that does not change over time and variable data that can be different each time the report is run. Les flux de données générés par Reporting ServicesReporting Services ont le même format que ceux générés par ADO.NET Data Services.The data feeds generated by Reporting ServicesReporting Services are in the same format as those generated by that ADO.NET Data Services.

Un flux de données contient deux sections : l'en-tête et les données.A data feed contains two sections: header and data. La spécification Atom définit les éléments de chaque section.The Atom specification defines the elements in each section. L'en-tête inclut des informations telles que le schéma d'encodage de caractères à utiliser avec les flux de données.The header includes information such as the character encoding schema to use with the data feeds.

Section d'en-têteHeader Section

Le code XML suivant illustre la section d'en-tête d'un flux de données.The following XML code shows the header section of a data feed.

<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://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>

Section de donnéesData Section

La section données de flux de données contient un < entrée>, élément pour chaque ligne dans l’ensemble de lignes aplati généré par l’extension de rendu Atom.The data section of the data feeds contains one <entry> element for each row in the flattened rowset generated by the Atom rendering extension.

Le diagramme suivant illustre un rapport utilisant des groupes et des totaux.The following diagram shows a report that uses groups and totals.

RS_Atom_ProductSalesSummaryCircledValuesRS_Atom_ProductSalesSummaryCircledValues

Le code XML suivant montre un < entrée> élément de ce rapport dans un flux de données.The following XML shows an <entry> element from that report in a data feed. Notez que la < entrée> élément inclut les totaux des ventes et des commandes pour le groupe et les totaux des ventes et des commandes de tous les groupes.Notice that the <entry> element includes the totals of the sales and orders for the group and the totals of sales and orders for all the groups. Le < entrée> élément inclut toutes les valeurs dans le rapport.The <entry> element includes all values on the report.

<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>

Utilisation des flux de donnéesWorking with Data Feeds

Tous les flux de données générés par le rapport incluent les éléments de rapport situés dans l'étendue du parent de la région de données qui génère les flux de données.All data feeds generated by the report include the report items that are in scope of the parent of the data region that generate the data feeds. .. Prenons l'exemple d'un rapport contenant plusieurs tables et un graphique.Imagine a report that has several tables and a chart. Les zones de texte dans le corps du rapport fournissent un texte descriptif pour chaque région de données.Text boxes in the report body provides descriptive text of each data region. Chaque entrée dans chaque flux de données généré par le rapport inclut la valeur de la zone de texte.Every entry in every data feed that the report generates includes the value of the text box. Par exemple, si le texte est « Le graphique affiche les moyennes des ventes mensuelles par région de ventes », les trois flux de données incluront ce texte sur chaque ligne.For example, if the text is "Chart displays monthly sales averages by sales region", all three data feeds would include this text on each row.

Si la mise en page du rapport inclut des relations de données hiérarchiques, comme par exemple des régions de données imbriquées, ces relations seront incluses dans l'ensemble de lignes aplati des données de rapport.If the report layout includes hierarchical data relationships, such as nested data regions, those relationships are included in the flattened rowset of report data.

Les lignes de données pour les régions de données imbriquées sont en général larges, particulièrement si les tables et matrices imbriquées incluent des groupes et des totaux.The data rows for nested data regions are typically wide, especially if the nested tables and matrices include groups and totals. Vous souhaiterez peut-être exporter le rapport vers un flux de données et afficher celui-ci pour vérifier que les données générées correspondent bien à vos attentes.You might find it useful to export the report to a data feed and view the data feed to verify that the data generated is what you expected.

Lorsque l'extension de rendu Atom crée le document de service Atom, un identificateur unique est créé pour le flux de données et vous utilisez cet identificateur dans l'URL pour afficher le contenu du flux de données.When the Atom rendering extension creates the Atom service document, a unique identifier is created for the data feed and you use the identifier in the URL to view the content of the data feed. L’exemple de document de service de Atom ci-dessus inclut l’URL http://ServerName/ReportServer?%2fProduct+Sales+Summary&rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aDataFeed=xAx0x1.The sample Atom service document, shown above, includes the URL http://ServerName/ReportServer?%2fProduct+Sales+Summary&rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aDataFeed=xAx0x1. L'URL identifie le rapport (Product Sales Summary), le format de rendu Atom (ATOM) et le nom du flux de données (xAx0x1).The URL identifies the report (Product Sales Summary), the Atom rendering format (ATOM), and the name of the data feed (xAx0x1).

Les noms des éléments de rapport sont par défaut les noms d'élément RDL (Report Definition Language) des éléments de rapport et, souvent, ils ne sont pas intuitifs ni faciles à mémoriser.Report item names default to the report definition language (RDL) element names of the report items and often they are not intuitive or easy to remember. Par exemple, le nom par défaut de la première matrice placés dans un rapport est Tablix 1.For example, the default name of the first matrix placed in a report is Tablix 1. Les flux de données utilisent ces noms.The data feeds use these names.

Pour simplifier l’utilisation du flux de données, vous pouvez utiliser la propriété DataElementName de la région de données pour attribuer des noms conviviaux.To make the data feed easier to work with, you can use the DataElementName property of the data region to provide friendly names. Si vous fournissez une valeur pour DataElementName sous-élément du flux de données < d> est le nom de région de données par défaut à la place.If you provide a value for DataElementName the data feed subelement <d> will use is it instead of the default data region name. Par exemple, si le nom par défaut une régions de données est Tablix1 et DataElementName défini SalesByTerritoryYear le < d> dans les données de flux utilisera SalesByTerritoryYear.For example, if the default name of a data regions is Tablix1 and DataElementName set SalesByTerritoryYear then the <d> in the data feed uses SalesByTerritoryYear. Si les régions de données ont deux flux de données tels que le rapport de matrice décrit ci-dessus, les noms utilisés dans les flux de données seront SalesByTerritoryYear _Territory et SalesByTerritoryYear _Year.If the data regions has two data feeds like the matrix report described above, the names used in the data feeds are SalesByTerritoryYear _Territory and SalesByTerritoryYear _Year.

Si vous comparez les données affichées dans le rapport à celles du flux de données, vous remarquerez certainement quelques différences.If you compare the data shown on the report and the data in the data feed, you might notice some differences. Les rapports affichent souvent les données numériques et d'heure/date avec une mise en forme, tandis que le flux de données contient des données non mises en forme.Reports often shows formatted numeric and time/date data whereas the data feed contains unformatted data.

Un flux de données est enregistré avec l'extension de nom de fichier .atom.A data feed is saved with the .atom file name extension. Vous pouvez utiliser un éditeur de texte ou XML tel que le Bloc-notes ou Éditeur XML pour afficher la structure de fichiers et leur contenu.You can use a text or XML editor such as Notepad or XML Editor to view the file structure and content.

Données de rapport aplaties Flattening Report Data

L'extension de rendu Atom fournit les données de rapport sous forme d'ensembles de lignes aplatis au format XML.The Atom renderer provides report data as flattened rowsets in an XML format. Les règles pour aplatir des tables de données sont identiques à celles de l'extension de rendu CSV, avec quelques exceptions :The rules for flattening data tables are the same to those of the CSV renderer with a few exceptions:

  • Les éléments dans l'étendue sont aplatis au niveau de détail.Items in scope are flattened to the detail level. Contrairement au rendu CSV, les zones de texte du niveau supérieur s'affichent dans chaque entrée écrite dans le flux de données.Unlike the CSV renderer, the text boxes at the top level appear in each entry written to the data feed.

  • Les valeurs du paramètre de rapport sont restituées sur chaque ligne de la sortie.Report parameter values are rendered on each row of the output.

    Les données hiérarchiques et groupées doivent être aplaties pour être représentées au format compatible Atom.Hierarchical and grouped data must be flattened in order to be represented in the Atom-compliant format. L'extension de rendu aplatit le rapport en arborescence qui représente les groupes imbriqués dans la région de données.The rendering extension flattens the report into a tree structure that represents the nested groups within the data region. Pour aplatir le rapport :To flatten the report:

  • Une hiérarchie de ligne est aplatie avant une hiérarchie de colonne.A row hierarchy is flattened before a column hierarchy.

  • Les membres de la hiérarchie de ligne sont restitués dans le flux de données avant les membres de la hiérarchie de colonne.Members of the row hierarchy are rendered to the data feed before members of the column hierarchy.

  • Les colonnes sont ordonnées comme suit : zones de texte dans le corps ordonnées de gauche à droite et de haut en bas, suivies des régions de données ordonnées de gauche à droite et de haut en bas.Columns are ordered as follows: text boxes in body order left-to-right, top-to-bottom followed by data regions ordered left-to-right, top-to-bottom.

  • Dans une région de données, les colonnes sont ordonnées comme suit : membres d'angle, membres de hiérarchie de ligne, membres de hiérarchie de colonne et enfin cellules.Within a data region, the columns are ordered as follows: corner members, row hierarchy members, column hierarchy members, and then cells.

  • Les régions de données d'homologue sont des régions de données ou des groupes dynamiques qui partagent une région de données commune ou un ancêtre dynamique commun.Peer data regions are data regions or dynamic groups that share a common data region or dynamic ancestor. Les données d'homologue sont identifiées par une création de branche au niveau de l'arborescence aplatie.Peer data is identified by branching of the flattened tree.

    Pour plus d'informations, consultez Tables, matrices et listes (Générateur de rapports et SSRS).For more information, see Tables, Matrices, and Lists (Report Builder and SSRS).

Règles de rendu Atom Atom Rendering Rules

L'extension de rendu Atom ignore les informations suivantes lors du rendu d'un flux de données :The Atom rendering extension ignores the following information when rendering a data feed:

  • mise en forme et mise en page ;Formatting and layout

  • En-tête de pagePage header

  • Pied de pagePage footer

  • Éléments de rapport personnalisésCustom report items

  • RectanglesRectangles

  • LignesLines

  • ImagesImages

  • Sous-totaux automatiquesAutomatic subtotals

    Les autres éléments de rapport sont triés, de haut en bas, puis de gauche à droite.The remaining report items are sorted, from top to bottom, and then left to right. Chaque élément est ensuite rendu dans une colonne.Each item is then rendered to a column. Si le rapport comporte des éléments de données imbriqués comme des listes ou des tableaux, les éléments parents sont répétés sur chaque ligne.If the report has nested data items like lists or tables, the parent items are repeated on each row.

    Le tableau suivant indique l'apparence des éléments de rapport lors du rendu :The following table indicates the appearance of report items when rendered:

ÉlémentItem Comportement de renduRendering behavior
TableTable Effectue le rendu en développant la table et en créant une ligne et une colonne pour chaque ligne et colonne au niveau de détails le plus bas.Renders by expanding the table and creating a row and column for each row and column at the lowest level of detail. Les colonnes et les lignes de sous-total ne comprennent pas de titres de colonne ou de ligne.Subtotal rows and columns do not have column or row headings. Les rapports d'extraction ne sont pas pris en charge.Drillthrough reports are not supported.
MatriceMatrix Effectue le rendu en développant la matrice et en créant une ligne et une colonne pour chaque ligne et colonne au niveau de détails le plus bas.Renders by expanding the matrix and creating a row and column for each row and column at the lowest level of detail. Les colonnes et les lignes de sous-total ne comprennent pas de titres de colonne ou de ligne.Subtotal rows and columns do not have column or row headings.
ListeList Effectue le rendu d'un enregistrement pour chaque instance ou ligne de détails dans la liste.Renders a record for each detail row or instance in the list.
Sous-rapportSubreport L'élément parent est répété pour chaque instance du contenu.The parent item is repeated for each instance of the contents.
GraphiqueChart Effectue le rendu d'un enregistrement avec toutes les étiquettes de graphiques pour chaque valeur de graphique.Renders a record with all chart labels for each chart value. Les étiquettes de séries et de catégories dans les hiérarchies sont aplaties et incluses dans la ligne pour une valeur de graphique.Labels from series and categories in hierarchies are flattened and included in the row for a chart value.
Barre de donnéesData bar Effectue le rendu comme un graphique.Renders like a chart. En règle générale, une barre de données n'inclut pas de hiérarchies ou d'étiquettes.Typically, a data bar does not include hierarchies or labels.
Graphique sparklineSparkline Effectue le rendu comme un graphique.Renders like a chart. En règle générale, un graphique sparkline n'inclut pas de hiérarchies ou d'étiquettes.Typically, a sparkline does not include hierarchies or labels.
JaugeGauge Effectue le rendu en tant qu'enregistrement unique avec les valeurs maximale et minimale de l'échelle linéaire, les valeurs de début et de fin de la plage et la valeur du pointeur.Renders as a single record with the minimum and maximum values of the linear scale, start and end values of the range, and the value of the pointer.
IndicateurIndicator Effectue le rendu en tant qu'enregistrement unique avec le nom de l'état actif, les états disponibles et la valeur de données.Renders as a single record with the active state name, available states, and the data value.
CarteMap Génère un flux de données pour chaque région de données cartographiques.Generates a data feed for each map data region. Si plusieurs couches utilisent la même région de données, le flux de données les inclut toutes.If multiple map layers use the same data region, the data feed includes all of them. Le flux de données inclut un enregistrement avec les étiquettes et les valeurs pour chaque membre cartographique de la couche.The data feed includes a record with the labels and values for each map member of the map layer.

Paramètres d'informations de périphérique Device Information Settings

Vous pouvez modifier certains paramètres par défaut pour ce convertisseur, notamment le schéma d'encodage à utiliser.You can change some default settings for this renderer, including the encoding schema to use. Pour plus d'informations, consultez ATOM Device Information Settings.For more information, see ATOM Device Information Settings.

Étapes suivantesNext steps

Exportation vers un fichier CSV Exporting to a CSV File
Exporter des rapportsExport Reports

D’autres questions ?More questions? Essayez de poser le forum Reporting ServicesTry asking the Reporting Services forum