+
Come leggere proprietà del profilo utente in moduli InfoPath 2010
Pubblicato il: 11/09/2011
Da: Riccardo Celesti
Lingua: Italiano
Livello: 300

Lavorando con InfoPath Designer 2010 e SharePoint 2010 in alcuni casi può essere utile recuperare automaticamente informazioni sull’utente dal suo profilo personale. Ovviamente per fare questo sono necessari due pre-requisiti fondamentali: la User Profile Application sia on-line e i profili siano adeguatamente popolati.

Come primo passo creeremo un nuovo modulo partendo da un modello vuoto.

Quando progetto un nuovo modulo, la prima cosa che faccio è quella di definirne la struttura dati. Comincere quindi col creare tre campi di esempio: manager, ufficio e dipartimento.

Figura 1

A questo punto andremo a definire la connessione dai verso il web service che ci permetterà di leggere le informazioni desiderate dallo user profile. Si tratta di una tipica connessione a web service SOAP. L’unica caratteristica da annotare è l’indirizzo del web service. Utilizzeremo il servizio UserProfileService.asmx, disponibile, così come molti altri, out-of-the-box in tutti i server SharePoint (a questo link trovate l’elenco dei web service SharePoint http://msdn.microsoft.com/en-us/library/ee705814.aspx).

Figura 2

Un punto di attenzione riguarda i criteri di accesso al servizio. E’ infatti importante che gli utenti che compileranno il form abbiamo accesso al sito indicato nell’url del web service.

Per poter accedere alle proprietà del profilo dovremo selezionare il metodo GetUserProfileByName.

Figura 3

Una volta arrivati a questo punto dovremo solo ricordarci di deselezionare la spunta che fa si che la connessioni dati venga interrogata al caricamento del form.

Figura 4

Una volta conclusa questa operazione creeremo una regola, sul load del form, per interrogare la connessione dai appena configurata e valorizzare uno dei campi del nostro modulo. Per farlo dovremo selezionare dal tab Data la voce Form Load, cliccare su New e quindi Action.

Figura 5

Dopo aver assegnato un nome alla regola potremo procedere con l’impostazione delle azioni da esegurie. Cliccando sul tasto Add aggiungeremo una prima azione per la selezione dei dati (Query for data) e, successivamente, una seconda per l’impostazione dei valori appena letti (Set a field’s  value) in uno dei campi della nostra form.

Figura 6

Se per la prima azione, Query for data, è sufficiente specificare la connessione dati che vogliamo interrogare, la seconda azione, Set a field’s value, richiede un minimo di attenzione in più.

Figura 7

Per completare la configurazione di questa azione dovremo infatti specificare in quale campo memorizzare la proprietà letta dallo user profile (nel nostro esempio useremo la proprietà Dipartimento). Per indicare da dove leggere le informazioni ottenute dalla query verso il web service dovremo cliccare sul tasto funzione fx e Insert Field or Group.... Una volta aperta la finestra di selezione dei dati dovremo cambiare l’origine dai, impostando il nome della connessione al web service (wsGetUserProfileByName nel nostro esempio), espandere tutti i nodi figli di dataFields e selezionare il nodo Value come indicato nell’immagine seguente.

 

 

Figura 8

Questo non è però sufficiente. Non abbiamo infatti ancora specificato la proprietà che vogliamo leggere. Per farlo dovremo cliccare sul tasto Filter data... ed aggiungere un nuovo filtro cliccando sul bottone Add. Come campo da verificare indicheremo il nodo Name, specificheremo l’operatore Is equal to ed infine, come valore di controllo, il nome della proprietà del profilo che vogliamo leggere (Department). E’ importante specificare l’internal name della proprietà, altrimenti non riusciremo ad ottenere i dati desiderati.

Nel caso non aveste accesso alla Central Administration potrete chiedere al vostro amministratore di esportare, via PowerShell, l’elenco di tutte le proprietà di profilo (in questo post è spiegato come http://blog.riccardocelesti.it/2011/07/15/ups-property-settings-esportare-liste-di-appoggio).

 Figura 9

Se volessimo impostare più campi del form con diverse proprietà provenienti dal profilo utente ci basterebbe aggiungere più azioni del tipo Set a field’s value alla regola che abbiamo impostato al load del form. Aggiungiamo ad esempio il campo Manager.

Figura 10

Una volta completate le impostazioni il vostro filtro apparirà come nell’immagine precedente. Confermate tutte le impostazioni (a questo punto si saranno aperte molte finestre, io ne ho contate cinque J) e pubblicate la form nel vostro sito SharePoint.

Al primo caricamento del modulo vederemo valorizzato il campo Dipartimento con il dato letto dallo user profile dell’utente correntemente loggato.

Figura 11 

Tags


Destinatari


Prodotti

Microsoft SharePoint Server 2010
SharePoint Foundation 2010


Bookmark and Share