Utilizzare dati esterni in SharePoint 2010


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)

image 

La tabella Customer è composta da una serie di campi
image

Apro con SharePoint Designer il sito in cui voglio usare la tabella Customer e dal menu a sinistra seleziono “Tipo di contenuto esterno”

image

e poi dal gruppo “Nuovo” del ribbon clicco su “Tipo di contenuto esterno” image

Imposto le informazioni sul tipo di contenuto image

e clicco sul link a fianco di “Sistema esterno” per impostare la nuova origine dati image

clicco sul bottone “Aggiungi connessione” e seleziono SQL Server come tipo di origine image

A questo punto mi viene richiesto l’utente che voglio utilizzare per connettermi al database image 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 image

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 image

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 image

a questo punto, per le operazioni selezionate, mi vengono richieste le proprietà di accessoimage

posso indicare dei filtri per parzializzare i records restituiti image

e selezionare i campi che voglio gestire fra quelli presenti nella tabella image 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 image

Indico i dati che mi vengono richiesti -in particolare devo definire il nome che voglio dare alla mia nuova lista (nel mio caso Clienti)- image e confermo.

A questo punto, fra le altre liste del mio sito, trovo la nuova “Clienti” appena creata image 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 Autorizzazioniimage 

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 image

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 image

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

Selezionare il BCS creato e cliccare sull’apposito bottone per settarne i permessi image

aggiungere gli utenti ai quali concedere l’accesso ai dati esterni ed i relativi permessi image

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 image

Se i records presenti nell’archivio sono più di 2000 si ottiene questo errore image 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 image da cui è possibile aggiungere anche azioni personalizzate associate al contenuto esterno, esattamente come si fa con in BDC nella versione 2007 di SharePoint image 

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.


Annunci

Informazioni su Patrizia

I miei viaggi www.pbase.com/serpat
Questa voce è stata pubblicata in BCS, SharePoint 2010, SharePoint Designer e contrassegnata con , , . Contrassegna il permalink.

18 risposte a Utilizzare dati esterni in SharePoint 2010

  1. giosia ha detto:

    Ciao, grazie per l’ottima guida e per avermi supportato nell’altro commento. Sono riuscito finalmente a creare la mia lista esterna ma rimane un problema: non viene visualizzato nulla se non l’errore “Impossibile visualizzare questa web part. Per risolvere il problema, aprire la pagina Web in un editor HTML compatibile con Microsoft SharePoint Foundation, ad esempio Microsoft SharePoint Designer. Se il problema persiste, contattare l’amministratore del server Web.” Ho verificato e i dati che reperisco sono molto inferiori a 2000, infatti, l’intera tabella che cerco di visualizzare ha soltanto 68 record. Quale potrebbe essere il problema??
    Grazie ancora

  2. Luca ha detto:

    Buon giorno ,
    volevo sapere come posso fare a collegare Sharepoint con il mio database Db2 ? Vorrei creare degli elenchi su Sp dalle tabelle di Db2. Ad esempio tutti i clienti dell’agente X ..
    Grazie

  3. giosia ha detto:

    Ciao, ottima guida e molto utile per il lavoro che sto per affrontare.
    Ho un problema però quando clicco su tipi di contenuto esterno ho questo errore:
    “nessun servizio di integrazione applciativa dei dati associato al contesto web corrente”
    Potresti aiutarmi!? Forse non sono attiva le Business Connectivity Services sulla farm sharepoint?Come si attivano!?
    Grazie mille per l’aiuto

  4. Emilio ha detto:

    E’ stato veramente molto utile, grazie, se posso approfittarne, una domanda:
    dei dati che leggo e pubblico come tabella, come posso selezionarne una parte per mandarli in un foglio excel per creare poi dei grafici?

    • Patrizia ha detto:

      Ciao Emilio,
      se usi la web part standard per la creazione dei grafici puoi usare direttamente il BCS come fonte dati; magari ti crei un BCS con i filtri che ti servono per parzializzare i dati e poi lo usi come sorgente del grafico.

      Ciao

      • Emilio ha detto:

        Ciao Patrizia,
        innanzitutto Grazie 1000, per la risposta tempestiva.
        Se non ho inteso male credo che dovrei usare la web part per i dati business, che tuttavia sono disponibili solo sulla licenza Enterprise, mentre io ho un “foundation” 😦

        Ciao

      • Emilio ha detto:

        mi correggo … volevo dire che la mia licenza è Sharepoint Server Standard , comunque non enterprise…

      • Emilio ha detto:

        Ho appena risolto il problema abilitando con i comandi powershell il BizAppsSiteTemplates nel seguente modo:
        Install-SPFeature “BizAppsSiteTemplates” –force
        Enable-SPFeature “4248E21F-A816-4c88-8CAB-79D82201DA7B” -URL [url sharepoint site]

        A questo punto nelle categorie di inserimento web parts vedo Business Data e con esso tutte le web parts associate

      • Patrizia ha detto:

        mmh… non so se è la cosa giusta…
        avresti potuto usare Google Chart e, con poche righe di jquery, avresti avuto il tuo grafico basato su una visualizzazione personalizzata.
        Volendo poi usare Excel (ma credo sia un giro inutile) avresti potuto aggiungere un’azione al bcs per l’esportazione in excel.
        Ciao

  5. Glauco Cucchiar ha detto:

    Ciao Patrizia, grazie innanzi tutto per i tuoi preziosi consigli.
    Una domanda particolare: come posso fare più o meno la stessa cosa con dei dati che stanno su file Excel?
    Grazie

    • patriziamonti ha detto:

      Ciao Glauco, prego!
      La tua domanda è molto generica… dipende cosa devi fare esattamente con i dati. La cosa più semplice è importare i fogli di Excel in SharePoint e trattare poi i dati direttamente. Diversamente puoi usare Excel Services o, se devi visualizzare i dati o i grafici di Excel o porzioni di essi, è conveniente usare REST per Excel Services.
      Insomma, hai diverse possibilità…
      Ciap

  6. Marco ha detto:

    Scusa il doppio reply, ci sono riuscito, mi ero sbagliato a configurare Secure Store Service per l’impersonation sui BCS.

    Visto che ci sono ti chiedo un’info: le liste di sharepoint si possono filtrare solo per condizioni vere, ma non esiste il contrario? Cioè filtrare per condizioni false?

    Ancora grazie!

    • patriziamonti ha detto:

      Ciao Marco, prego!
      Se nelle visualizzazioni delle liste usi i filtri, puoi mettere anche le condizioni *false*.

      • Marco ha detto:

        Grazie infinite! Ho risolto tutti i problemi e ora posso usare elenchi esterni!

        Un’ultima domanda, se posso approfittarne: cosa usi per fare ricerca sugli elenchi esterni?
        Nel mio caso ho un elenco con più di 2000 record (infatti ho dovuto modificare da powershell le impostazioni sempre seguendo la tua guida) e un modulo di ricerca mentre scrivo mi sarebbe molto comodo!

        Grazie infinite!

        P.S. Può essere che ti abbia vista nei forum technet di Microsoft? Il tuo avatar mi è familiare…

  7. Marco ha detto:

    Ciao, la tua guida è davvero utile, dettagliata e ben fatta, mi ha risparmiato ore di ricerche sulla documentazione microsoft!

    Ti chiedo solo una cosa: dopo lo stesso tuo procedimento, se vado a visualizzare la lista mi viene restituito questo errore:
    “Accesso non riuscito per l’utente ‘NT AUTHORITY\ACCESSO ANONIMO'”

    Sai come potrei risolvere questo inconveniente?
    Grazie in anticipo!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...