Generare i feed di dati da dei report (Generatore di report)

L'estensione per il rendering Atom di Reporting Services consente di generare un documento di servizio Atom in cui sono elencati i feed di dati disponibili in un report impaginato e i feed di dati delle aree dati di un report. Questa estensione viene usata per generare feed di dati conformi ad Atom, leggibili e scambiabili con applicazioni che possono usare i feed di dati generati dai report. Ad esempio è possibile usare l'estensione per il rendering Atom per generare feed di dati che, in seguito, possono essere usati in Power Pivot o Power BI.

Il documento di servizio di Atom elenca almeno un feed di dati per ogni regione dati di un report. A seconda del tipo di area dati e dei dati in essa visualizzati, Reporting Services potrebbe generare più feed di dati da un'area dati. Ad esempio una matrice o un grafico può fornire più feed di dati. Quando l'estensione per il rendering Atom crea il documento di servizio Atom, viene generato un identificatore univoco per ogni feed di dati che può essere usato nell'URL per accedere al contenuto del feed di dati.

Il modo in cui l'estensione di rendering Atom genera i dati per un feed di dati è simile al modo in cui l'estensione di rendering CSV (Comma-Separated Value) esegue il rendering dei dati in un file CSV. Come un file CSV, un feed di dati è una rappresentazione appiattita dei dati del report. Ad esempio una tabella con un gruppo di righe che somma le vendite all'interno di un gruppo, ripete la somma in ogni riga di dati e non vi è alcuna riga separata che contiene solo la somma.

È possibile generare documenti di servizio Atom e feed di dati usando il portale Web di Reporting Services, Server di report o un sito di SharePoint integrato con Reporting Services.

Atom può essere applicato ad alcuni standard correlati. Il documento di servizio Atom è conforme alla specifica del protocollo di pubblicazione Atom RFC 5023 mentre i feed di dati sono conformi alla specifica del protocollo del formato di diffusione Atom RFC 4287.

Nelle sezioni seguenti vengono fornite ulteriori informazioni sull'utilizzo dell'estensione per il rendering Atom:

È possibile creare e modificare file di definizione di report impaginati (.rdl) in Generatore report di Microsoft, Power BI Report Builder e in Progettazione report in SQL Server Data Tools.

Report come feed di dati

È possibile esportare un report di produzione come un feed di dati oppure creare un report il cui scopo principale è quello di fornire dati alle applicazioni, sotto forma di feed di dati. Usando i report come feed di dati, è possibile fornire dati alle applicazioni quando i dati non sono facili da accedere tramite provider di dati client. In alternativa, è possibile usarli come feed di dati quando si preferisce nascondere la complessità dell'origine dati e semplificare l'uso dei dati. Un altro vantaggio dell'uso dei dati del report come feed di dati consiste nell'usare le funzionalità di Reporting Services. Queste funzionalità includono la sicurezza, la pianificazione e gli snapshot dei report per gestire i report che forniscono feed di dati.

Per ottenere il massimo dall'estensione per il rendering Atom, è necessario capire il modo in cui viene eseguito il rendering del report in feed di dati. Se si usano report esistenti, può essere utile prevedere quali dati genereranno i feed di dati prodotti dai report. Se i report vengono scritti per essere specificatamente usati come feed di dati, la possibilità di includere i dati e ottimizzare il layout del report per aumentare l'utilità dei feed di dati risulta vantaggiosa.

Per altre informazioni, vedere Generare i feed di dati da un report (Generatore report e SSRS).

Documento di servizio Atom (file con estensione atomsvc)

Un documento di servizio Atom specifica una connessione a uno o più feed di dati. Come minimo, la connessione è un semplice URL al servizio dati che produce il feed.

Quando si esegue il rendering dei dati del report tramite l'estensione per il rendering Atom, il documento di servizio Atom elenca i feed di dati disponibili per un report. Nel documento è elencato almeno un feed di dati per ogni area dati nel report. Tabelle e misuratori generano solo un feed di dati ognuno, mentre matrici, elenchi e grafici potrebbero generarne di più a seconda dei dati che visualizzano.

Nel diagramma seguente viene mostrato un report che usa due tabelle e un grafico.

Diagramma del report che usa due tabelle e un grafico.

Il documento di servizio Atom generato da questo report include tre feed di dati, uno per ogni tabella e uno per il grafico.

Le aree dati della matrice potrebbero disporre di più di un feed di dati, a seconda della struttura della matrice. Nel diagramma seguente viene mostrato un report che usa una matrice che genera due feed di dati.

Diagramma del report che usa una matrice che genera due feed di dati.

Il documento di servizio Atom generato da questo report include due feed di dati, uno per ogni colonna peer dinamica: territorio e anno. Nel diagramma seguente viene mostrato il contenuto di ogni feed di dati.

Diagramma del contenuto di ogni feed.

Flussi di dati

Il feed di dati è un file XML che dispone di un formato tabulare coerente che non cambia nel tempo e di dati variabili che possono essere diversi ogni volta che viene eseguito il report. Il formato dei feed di dati generati da Reporting Services è uguale a quello dei feed generati da ADO.NET Data Services.

Un feed di dati contiene due sezioni: header e dati. La specifica Atom definisce gli elementi di ogni sezione. L'intestazione include informazioni quali lo schema di codifica dei caratteri da usare con i feed di dati.

Sezione dell'intestazione

Il seguente codice XML mostra la sezione di intestazione di un feed di dati.

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

Sezione di dati

La sezione dati dei feed di dati contiene un elemento <entry> per ogni riga del rowset appiattito generato dall'estensione di rendering Atom.

Nel diagramma seguente viene mostrato un report che usa gruppi e totali.

Diagramma del report che utilizza gruppi e totali.

Il seguente codice XML mostra un elemento <entry> da quel report in un feed di dati. Si noti che l'elemento <entry> include i totali delle vendite e degli ordini per il gruppo, nonché i totali delle vendite e degli ordini per tutti i gruppi. L'elemento <entry> include tutti i valori nel 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>

Utilizzo dei feed di dati

Tutti i feed di dati generati dal report includono gli elementi del report che si trovano nell'ambito dell'elemento padre dell'area dati che genera i feed di dati. Immaginare un report che dispone di diverse tabelle e di un grafico. Le caselle di testo nel corpo del report forniscono il testo descrittivo di ogni area dati. Ogni voce di ogni feed di dati generato dal report contiene il valore della casella di testo. Ad esempio se il testo è "Il grafico visualizza le medie delle vendite mensili per area di vendita", tutti e tre i feed di dati includono questo testo in ogni riga.

Se il layout del report comprende relazioni gerarchiche tra i dati, ad esempio aree dati annidate, tali relazioni sono incluse nel set di righe appiattito del report.

Le righe di dati per le aree dati nidificate sono in genere larghe, soprattutto se le tabelle e le matrici nidificate includono gruppi e totali. Potrebbe essere utile esportare il report in un feed di dati e visualizzare quest'ultimo per verificare che i dati generati siano quelli previsti.

Quando l'estensione per il rendering Atom crea il documento di servizio Atom, viene generato un identificatore univoco per il feed di dati che può essere usato nell'URL per visualizzare il contenuto del feed di dati. Nel documento di servizio Atom di esempio illustrato in precedenza è incluso l'URL https://ServerName/ReportServer?%2fProduct+Sales+Summary&rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aItemPath=Tablix1. L'URL identifica il report (Product Sales Summary), il formato di rendering Atom (ATOM) e il nome dell'elemento del report (Tablix1).

I nomi degli elementi del report vengono impostati in modo predefinito sui nomi degli elementi del linguaggio RDL degli elementi del report e, spesso, non sono intuitivi o facili da ricordare. Ad esempio, il nome predefinito della prima matrice presente in un report è Tablix1. I feed di dati hanno questi nomi.

Per rendere più semplice l'uso del feed di dati, è possibile sfruttare la proprietà DataElementName dell'area dati per fornire nomi descrittivi. Se si fornisce un valore per DataElementName, il sottoelemento del feed di dati <d> lo userà al posto del nome dell'area dati predefinito. Ad esempio, se il nome predefinito di un'area dati è Tablix1 e DataElementName è impostato su SalesByTerritoryYear, allora <d> nel feed di dati usa SalesByTerritoryYear. Se l'area dati ha due feed di dati come il report matrice descritto in precedenza, i nomi usati nei feed di dati sono SalesByTerritoryYear _Territory e SalesByTerritoryYear _Year.

Se si confrontano i dati mostrati sul report e i dati del feed di dati, è possibile notare alcune differenze. I report spesso mostrano dati numerici formattati e relativi all'ora/data, mentre il feed di dati contiene dati non formattati.

Un feed di dati viene salvato con l'estensione di file .atom. Per visualizzare la struttura e il contenuto del file, è possibile usare un editor di testo o XML, ad esempio il Blocco note o l'editor XML.

Rendere flat i dati del report

Il renderer Atom fornisce i dati del report come set di righe appiattiti in formato XML. Le regole per rendere bidimensionali le tabelle di dati sono uguali alle regole del renderer CSV con alcune eccezioni:

  • Gli elementi inclusi nell'ambito vengono appiattiti al livello di dettaglio. A differenza del renderer CSV, le caselle di testo del livello principale vengono visualizzate in ogni voce scritta nel feed di dati.

  • I valori dei parametri del report vengono visualizzati su ogni riga dell'output.

Per poter essere rappresentati in un formato conforme ad Atom, i dati gerarchici e raggruppati devono essere appiattiti. L'estensione di rendering appiattisce il report in una struttura ad albero che rappresenta i gruppi nidificati nell'area dati. Quando si appiattisce un report, si ottengono i risultati seguenti:

  • Una gerarchia di righe viene appiattita prima di una gerarchia di colonne.

  • I membri della gerarchia di righe vengono visualizzati nel flusso di dati prima dei membri della gerarchia di colonne.

  • Le colonne vengono ordinate nel modo seguente: caselle di testo presenti nel corpo da sinistra verso destra e quindi dall'alto verso il basso seguite dalle aree dati da sinistra verso destra e quindi dall'alto verso il basso.

  • All'interno di un'area dati le colonne vengono ordinate nel modo seguente: membri di angolo, membri della gerarchia delle righe, membri della gerarchia delle colonne e quindi le celle.

  • Le aree dati di pari livello sono aree dati o gruppi dinamici che condividono un'area dati o un predecessore dinamico comune. I dati dello stesso livello vengono identificati dalla ramificazione dell'albero appiattito.

Per altre informazioni, vedere Tabelle, matrici ed elenchi (Generatore di report e SSRS).

Regole di rendering per Atom

L'estensione per il rendering Atom ignora le informazioni seguenti quando si esegue il rendering di un feed di dati:

  • Formattazione e layout

  • Intestazione della pagina

  • Piè di pagina

  • Elementi dei report personalizzati

  • Rettangoli

  • Righe

  • Immagini

  • Subtotali automatici

Gli elementi rimanenti del report vengono ordinati dall'alto verso il basso, quindi da sinistra a destra. Viene quindi eseguito il rendering di ogni elemento in una colonna. Se il report contiene elementi di dati nidificati, come elenchi o tabelle, gli elementi padre vengono ripetuti su ogni riga.

Nella seguente tabella è indicato l'aspetto degli elementi del report di cui è stato eseguito il rendering:

Articolo Comportamento del rendering
Tabella Esegue il rendering espandendo la tabella e creando una riga e una colonna per ogni riga e colonna al livello di dettaglio più basso. Le righe e le colonne dei subtotali non hanno intestazioni di colonna o di riga. I report drill-through non sono supportati.
Matrice Esegue il rendering espandendo la matrice e creando una riga e una colonna per ogni riga e colonna al livello di dettaglio più basso. Le righe e le colonne dei subtotali non hanno intestazioni di colonna o di riga.
Elenco Esegue il rendering di un record per ogni riga di dettaglio o istanza nell'elenco.
Sottoreport L'elemento padre viene ripetuto per ogni istanza del contenuto.
Grafico Visualizza un record con tutte le etichette per ciascun valore del grafico. Le etichette delle serie e delle categorie nelle gerarchie vengono appiattite e incluse nella riga corrispondente a un valore del grafico.
Barra dei dati Viene visualizzato come un grafico. In genere, in una barra dei dati non sono incluse gerarchie o etichette.
Sparkline Viene visualizzato come un grafico. In genere, in un grafico sparkline non sono incluse gerarchie o etichette.
Misuratore Viene visualizzato come singolo record con i valori minimo e massimo della scala lineare, i valori iniziale e finale dell'intervallo e il valore del puntatore.
Indicatore Viene visualizzato come un unico record con il nome dello stato attivo, gli stati disponibili e il valore del dato.
Mappa Viene generato un feed di dati per ogni regione dei dati della mappa. Se più livelli mappa usano la stessa area dati, vengono inclusi tutti nel feed di dati. Il flusso di dati include un record con le etichette e i valori per ogni elemento della mappa del layer della mappa.

Impostazioni relative alle informazioni sul dispositivo

È possibile modificare alcune impostazioni predefinite per questo renderer, incluso lo schema di codifica da usare. Per altre informazioni, vedere ATOM Device Information Settings.