In SharePoint ci sono, e ci sono sempre stati, diversi modi per collegare e utilizzare dati che provengono da fonti esterne a SharePoint stesso. Naturalmente si possono sviluppare soluzioni che mettono a disposizione di SharePoint dati di qualsiasi tipo, ma sto parlando di metodi che non implicano la realizzazione di codice.
Il più conosciuto per chi lavora in SharePoint 2007 è, forse, il BDC (Business Data Catalog), che nella versione 2010 si chiama BCS (Business Connectivity Services). Questa funzionalità prevede la creazione di un file XML che, semplificando, contiene la definizione della fonte dati esterna da collegare, sulla base della quale SharePoint gestirà i dati.
In SharePoint 2010 possiamo effettuare questa operazione direttamente da SharePoint Designer, in maniera guidata e notevolmente semplificata rispetto alla creazione del file XML.
Voglio provare ad utilizzare da SharePoint l’archivio clienti (SalesLT.Customer) del database SQL AdventureWorksLT (scaricabile da qui)
La tabella Customer è composta da una serie di campi
Apro con SharePoint Designer il sito in cui voglio usare la tabella Customer e dal menu a sinistra seleziono “Tipo di contenuto esterno”
e poi dal gruppo “Nuovo” del ribbon clicco su “Tipo di contenuto esterno”
Imposto le informazioni sul tipo di contenuto
e clicco sul link a fianco di “Sistema esterno” per impostare la nuova origine dati
clicco sul bottone “Aggiungi connessione” e seleziono SQL Server come tipo di origine
A questo punto mi viene richiesto l’utente che voglio utilizzare per connettermi al database per la connessione è consigliabile definire un solo utente che verrà sempre utilizzato da tutte le chiamate al database, ovvero è bene effettuare l’impersonation. Per attivare l’impersonation dell’utente occorre creare un’applicazione di Secure Store Service (vedi Configurare Secure Store Service per l’impersonation sui BCS) di cui occorre indicare l’ID nell’apposto campo e relativi user e password dopo la conferma dei dati di connessione
Se i dati inseriti sono corretti e l’utente indicato ha gli opportuni permessi in SQL Server, ci viene presentato l’elenco delle tabelle presenti nel database AdwentureWorksLT
clicco il bottone destro del mouse sulla tabella Customer e seleziono l’operazione che mi interessa attivare per questa tabella; oltre alla lettura voglio gestire anche inserimenti e modifiche, per cui seleziono tutte le operazioni
a questo punto, per le operazioni selezionate, mi vengono richieste le proprietà di accesso
posso indicare dei filtri per parzializzare i records restituiti
e selezionare i campi che voglio gestire fra quelli presenti nella tabella se le operazioni precedentemente selezionate prevedono anche la modifica e/o l’inserimento di dati è necessario selezionare tutti i campi che sono stati definiti di tipo obbligatorio.
Personalizzate le operazioni, posso creare il nuovo elenco SharePoint ed i relativi moduli di gestione (inserimento, modifica e visualizzazione) partendo dall’archivio esterno appena configurato; basta cliccare sul bottone “Crea elenchi e moduli” presente nel ribbon
Indico i dati che mi vengono richiesti -in particolare devo definire il nome che voglio dare alla mia nuova lista (nel mio caso Clienti)- e confermo.
A questo punto, fra le altre liste del mio sito, trovo la nuova “Clienti” appena creata e cliccando su “Tipi di contenuto esterno” è presente la nuova connessione ad AdventuraWorksLT; cliccandoci sopra posso vedere il dettaglio di tutta la configurazione effettuata; l’unica sezione vuota è quella relativa alle Autorizzazioni
Se ora apro il mio sito dal browser e controllo “Tutto il contenuto del sito” fra gli elenchi trovo il nuovo “Clienti” che, a prima vista, si differenzia dagli altri solo per la diversa icona, classica di un contenuto esterno
Ritrovo il mio nuovo elenco anche nella barra di avvio veloce (Quick Launch Bar), che mi permette di accedere all’archivio; alla prima prova ottengo un errore sui permessi d’accesso
Le autorizzazioni per l’uso dei contenuti esterni vanno attribuite al BCS che la nuova connessione ha automaticamente generato. Occorre andare nell’amministrazione centrale di SharePoint e selezionare “Business Data Connectivity Service” da “Manage Service Appplication”
Selezionare il BCS creato e cliccare sull’apposito bottone per settarne i permessi
aggiungere gli utenti ai quali concedere l’accesso ai dati esterni ed i relativi permessi
Ora dal browser è possibile accedere all’archivio clienti e trattarlo come un qualsiasi altro elenco di SharePoint, eventualmente definendo i singoli permessi d’accesso agli utenti attraverso la normale gestione delle autorizzazioni
Se i records presenti nell’archivio sono più di 2000 si ottiene questo errore dovuto al limite di records restituiti da una query impostato nel connettore, che eventualmente occorre aumentare (vedi Errore in visualizzazione di contenuti esterni in SharePoint 2010).
Da questo momento, oltre che da SharePoint Designer 2010, è possibile modificare le proprietà del nuovo BCS anche dall’amministrazione centrale da cui è possibile aggiungere anche azioni personalizzate associate al contenuto esterno, esattamente come si fa con in BDC nella versione 2007 di SharePoint
Attenzione, se si torna a modificare il BCS da SharePoint Designer i permessi d’accesso saranno annullati ed occorrerà tornare in amministrazione centrale per riassegnarli.