SQL Azure Reporting Services–prima parte

 

Per tanti hanni ho scritto le applicazioni più disparate con diversi linguaggi e differenti database e tutte le volte non sono mai riuscito a sfuggire all’incubo di tutti gli sviluppatori : i report !!! Se c’è una cosa che odiamo sono i report, indipendentemente dal software sofisticato che viene utilizzato, scrivere un report è sempre stata una di quelle cose che si lasciava alla fine come l’esame di analisi 2 all’università. Oggi le cose non sono cambiate ma per fortuna ci sono degli strumenti che ci semplificano il lavoro e parlando di cloud e di SQL Azure è stata da poco rilasciata la CTP dei SQL Azure Reporting Services. Se abbiamo un database nel cloud avremo bisogno di report nel cloud e i SQL Azure Reporting Services fanno esattamente al caso nostro. Ad oggi è possibile agganciare qualunque strumento di reportistica a SQL Azure dato che all’interno della piattaforma Azure è esposto attraverso TDS e quindi accessibile dall’esterno con qualunque providere. In alcuni casi ha senso mantenere i report all’interno della propria azienda e far pescare i dati nel cloud ma nella magior parte di casi vogliamo tutto sulla nuvola. In questo posto cercherò di descrivervi passo passo cosa fare per utilizzare la CTP, creare un report, pubblicarlo su Azure e costruire un Web role con all’interno il controllo ReportViewer che punta al nostro Reporting Server. Lo faccio perchè sperimentandolo direttamente non tutti i passaggi sono chiari e spero di far risparmiare un pò di tempo a chi vuole provare questa nuova funzionalità.

Partiamo prima di tutto da quello che ci serve per partire:

  1. Una subscription attiva su Windows Azure (potete attivare quella presenta dentro l’abbonamento MSDN oppure provare la nuova sottoscrizione che vi permette di provare Azure senza pagare a questo indirizzo) con un database SQL Azure attivo che sarà la datasource dei nostri report.
  2. SQL Server Business Intelligence Development Studio di SQL Server 2008 R2
  3. Tutto quello che trovate qui https://msdn.microsoft.com/en-us/windowsazure/cc974146 Smile

Bene ora che abbiamo tutto possiamo partire. La prima cosa da fare è attivare la CTP e questo lo si può fare attraverso il portale di Windows Azure una volta fatta la login con il vostro Windows Live ID (lo stesso usato per attivare la subscription). Il portale si trova su https://windows.azure.com/.

Una volta entrati selezionate Reporting sulla barra laterale sinistra e fate il Sign Up alla CTP (in realtà da questo sito https://connect.microsoft.com/sqlazurectps)

image

Una volta richiesto l’accesso alla CTP riceverete una mail che oltre a confermarvi l’accesso vi darà l’Invitation Code da utilizzare nello step 2 della schermata precedente (Provision). Una volta inserito il codice avrete a disposizione un Reporting Server tutto per voi !! (sotto il mio esempio)

image

Avete quindi un Web service URL che punta al Report Server e un utente che è l’amministratore del server (potete cambiare la password attraverso il menù in alto)

Creazione del Report

A questo punto possiamo incominicare a creare il nostro report. Aprite il SQL Server Business Intelligence Development Studio e create un nuovo progetto selezionando Report Server Project Wizard. La prima cosa che vi verrà richieta è la sorgente dei dati sui quali volete creare i report. Per poter fare delle prove ed essere più rapidi potete far puntare il report ad un database locale e poi spostare la connessione sul SQL Azure , nel mio caso faccio puntare direttamente il report sul database nel cloud per fare delle prove reali. Inserite il nome della sorgente, selezionate Microsoft SQL Azure e la stringa di connessione per accedere al database (premendo il tasto Edit si apre il Wizard). Per poter accedere al database in SQL Azure ricordatevi sempre di impostare all’interno del portale il firewall per permettere al vostro pc (indirizzo IP) di accedere direttamente al database.

image

Vi verrà richiesto di inserire l’utente e la password necessari per accedere alla sorgente dati. NON USATE L’UTENTE ADMIN !!!
Create un utente ad hoc su SQL Azure che abbia il diritto di accedere ai dati in lettura.

Nella seconda finestra vi verrà richiesto di inserire la query da usare sulla sorgente dati. Inserite la query o utilizzate il query builder (cominciate con una facile Smile), selezionate Tabular, selezionate i campi che volete vedere nel report, scegliete il Table Style e finite dando il nome del report, nel mio caso AzureReport. Dovreste trovarvi più o meno come nella schermata qui sotto:

image

Potete selezionare il tab Preview per vedere in esecuzione il report.

Pubblicazione su Windows Azure

Ora siamo pronti per pubblicare il nostro report su Windows Azure ma dato che non vogliamo chiedere all’utente di inserire il nome e la password dell’utente per accedere al database ci manca ancora un ultimo passo. Fate doppio click sulla Data Source che è stata creata e selezionate la seconda opzione inserendo il nome dell’utente e la password che verranno utilizzati dal Report server per collegarsi al database.

image

Ok siamo pronti, ora proviamo a pubblicare il tutto.
Selezionate dalla voce di menù Project le properties della vostra soluzione. Vedrete la seguente finestra:

image

Ci sono una serie di opzioni già configurate come per esempio il nome del report e il folder che verrà utilizzato durante il deployment. Dovete impostare come target version SQL Server 2008 R2 e come TargetServerUrl l’indirizzo del web service Url che è stato creato per voi da WindowsAzure aggiungendo /reportserver (nel mio caso https://rsprodctp2348.ctp.reporting.database.windows.net/reportserver)

Ora dal menù build potete selezionare la voce Deploy e caricare il vostro report sui SQL Azure Reporting Services.Vi verrà richiesto di inserire l’utente amministratore dei Reporting Services (lo stesso che vi è stato allocato durante l’attivazione della CTP). Inseriteli Smile. Fatto il report è stato pubblicato sul cloud !!!

Testiamo il report

Per testare il vostro report potete tramite il browser accedere allo stesso indirizzo usato per il deployment e accedere alla console dei Reporting Services. (nel mio caso https://rsprodctp2348.ctp.reporting.database.windows.net/reportserver). Inserite l’utente e la password (come sopra) e accedete al portale (in questo momento molto molto molto semplice):

image

Selezionate il folder e il report che avete pubblicato:

image

Et voilà Smile il nostro primo report su Azure.

image

Nella seconda parte vedremo come utilizzare il ReportViewer all’interno di un’applicazione web pubblicata su Windows Azure.