Utilizzare Power BI per verbalizzare i campi persona su SharePoint

I campi persona su SharePoint sono soltanto uno dei tanti campi ricerca e il connettore Power BI SharePoint list li conosce alla perfezione.
Per questo, fornisce degli assistenti che rendano relativamente semplice recuperare il nome dell’utente.
Ma sono disponibili anche altre informazioni: in questo post, esamineremo 3 approcci per estrarre questi dati.
È importante notare che tutte le liste SharePoint contengono i campi persona per le colonne “Creato da” e “Modificato da”.

La lista
Prendete, ad esempio, la lista seguente che contiene un campo a scelta multi-valore chiamato Amenities.

Utilizzare Power BI per verbalizzare i campi persona su SharePoint

La vista mostra il nome della persona, anche se la colonna è un data type complesso.
Ci sono più informazioni disponibili in background rispetto al solo nome della persona ma non sono visibili dalla vista SharePoint.
Power BI, però, può accedere a queste informazioni nei report. I requisiti dei report indicheranno il miglior approccio da utilizzare per estrarre queste informazioni ma la buona notizia è che ce ne sono diverse fra cui scegliere. In tutti i casi, i dati devono, prima di tutto, essere portati all’interno di Power BI Desktop.

Caricare i dati
Apriamo quindi Power BI Desktop, selezioniamo Get Data e scegliamo SharePoint Online list (se vogliamo connetterci a SharePoint Online) o SharePoint List (se utilizziamo SharePoint Server).
A questo punto, ci viene chiesto l’URL del sito SharePoint. La finestra di dialogo è intitolata SharePoint lists ma il valore richiesto, in realtà, è l’URL del sito non la lista in sè. Una volta inserito, ci vengono chieste le credenziali se non ci siamo connessi al sito prima d’ora. Dopo averle inserite, possiamo selezionare la lista per cui effettuare il report.
Nel nostro caso, è chiamata Listings: la selezioniamo e clicchiamo sul pulsante Edit.

Utilizzare Power BI per verbalizzare i campi persona su SharePoint

Una volta caricati i dati, la prima cosa che noterete è che vi sono una serie di colonne fra cui scegliere: vi consigliamo di rimuovere i dati di cui non avete bisogno.
In questo caso, possiamo rimuovere la colonna ContentTypeId e tutto quello che sta alla sua destra mantenendo le colonne FieldValuesAsText e Agent.
Ricordate che, l’obiettivo di questo post è quello di effettuare un report sulla colonna persona “Agent”.
Il modo più semplice per rappresentare questi dati è con il nome completo della persona: proprio come mostrato nella vista SharePoint.
Come indicato in precedenza, è anche possibile utilizzare questi dati in maniera più strutturata e dettagliata.
Iniziamo con la modalità più semplice.

1. Estrarre il nome completo
Una cosa che noterete subito è che i tipi di colonna più semplici, ad esempio Title, mostreranno il loro valore direttamente all’interno del Query editor.
Nel nostro caso, vi sono due campi collegati ad Agent: le colonne AgentId e Agent.
La colonna Agent ID mostra un numero, mentre la colonna Agent mostra un record data type. Esamineremo queste colonne ma, se tutto quello di cui abbiamo bisogno è il nome completo dell’utente, possiamo utilizzare l’utilissima colonna FieldValuesAsText.

Scorrete verso destra e cliccate l’icona che espande per la colonna FieldValuesAsText, poi de-selezionate tutti i campi disponibili eccetto la colonna Agent.

Successivamente, cliccate su OK e rinominate la colonna in Agent Name.
Il nome completo della persona viene recuperato ed utilizzato per la colonna.
A questo punto, è pronto per essere utilizzato in un report.

Inserire il link alla User Information List
In molti casi, il nome utente della persona può non essere sufficiente.
Come detto in precedenza, il campo Persona è una colonna di tipo lookup che consulta automaticamente i dati di una specifica lista.
Si tratta della User Information list: lista nascosta che si trova nella root site di tutte le site collection di SharePoint.
Questa lista viene popolata automaticamente quando si accede alla site collection. Quando Power BI carica una colonna persona, viene automaticamente creata una colonna ColumnNameId che contiene l’ID value del campo persona proveniente da questa lista. Nel nostro esempio, si tratta della colonna AgentId.

Per fare leva sui dati di questa lista, prima di tutto devono essere caricati nel modello.
Seguendo gli stessi passaggi fatti per caricare la Listing data qui sopra, selezionate la User Information List che verrà esposta al Power BI Query editor.
Una volta caricati i dati, rimuovete tutte le colonne non-necessarie dalla query assicurandovi di lasciare la colonna ID.

Quando siete pronti, selezionate il pulsante Close and Apply dal Query Editor Ribbon.
A questo punto, abbiamo due tabelle nel modello: Listings e User Information List.
Ora selezioniamo la relationship editor tab.
La colonna AgentId nella tabella Listings è collegata alla colonna ID nella tabella User Information list: per stabilire questa relazione trascinatele una dentro l’altra.
Una volta creato il legame, fate doppio click sulla linea di relazione per impostare il valore del Cross filter direction su Both.

Ora tornate al pannello di design, inserite una tabella ed aggiungete le colonne da entrambe le tabelle.
In questo modo, possiamo mostrare il nome, l’email, il telefono (…ecc) dell’agente.

Espandere la colonna persona
Sebbene il collegamento alla User Information List sia potente e più semplice e probabilmente un metodo migliore, per fare la medesima cosa, potete utilizzare la colonna persona generata automaticamente. Questa colonna ha lo stesso nome della persona della colonna originale e contiene una serie di valori di tipo Record.
I record in questione sono i record corrispondenti che provengono dalla User Information List.

Per accedere ai dati di questa colonna, clicchiamo sul pulsante che ci permette di espandere la colonna e selezioniamo tutte le colonne con cui lavorare.
I valori della correlata User Information List verranno aggiunti automaticamente alla tabella.

Utilizzare Power BI per verbalizzare i campi persona su SharePoint

Utilizzare Power BI per verbalizzare i campi persona su SharePoint

Questo approccio è chiaramente più semplice rispetto al caricamento manuale dell’intera User Information List e carica soltanto i record collegati.
Molto probabilmente, risulterà in un esteso ammontare di dati ripetuti che evita l’approccio alle due tabelle. È possibile raggiungere una soluzione a due tabelle quando il campo persona utilizza la tecnica del multi-value fields (maggiori info) ma la risultante tabella conterrà solo i record collegati. Se è necessario mostrare le persone indipendentemente dal fatto che vi sia un record correlato, allora l’approccio manuale è l’unico possibile.

Quale debba essere l’approccio da utilizzare, dipende da requisiti del report ma è possibile anche andare in profondità nell’oggetto di una persona in una SharePoint person field.


Le informazioni presenti in questo post, sono prese dall’articolo: Using Power BI to Report on Person Fields in SharePoint.