Donnerstag, 15. Januar 2015

InfoPath – UserProfileService


Ein Vorteil von elektronischen Formularen ist, dass bereits vorhandene Informationen im Formular verwendet werden können. So ist es üblich, dass bestimmte Benutzerinformationen in einem Formular automatisch ausgefüllt werden sollen. Informationen, wie zum Beispiel Vor- und Nachname oder die E-Mail Adresse stehen in der Regel im SharePoint Profil eines Benutzers. Diese Informationen lassen sich mit Hilfe von Datenverbindungen im InfoPath verwenden.

Als erstes benötigen wir eine Datenverbindung zum Abrufen der Benutzerprofildaten. Wir legen im InfoPath eine neue Datenverbindung an. Das Benutzerprofil lässt sich über einen SOAP-Webservice, dem UserProfileService.asmx, abrufen.




Abbildung 1 Datenverbindung - UserProfileService.asmx



Anschließend stehen verschiedene Methoden, die der Webservice bereitstellt zur Verfügung. In diesem Beispiel wählen wir „GetUserProfileByName" und klicken auf „weiter“ und nehmen den Haken für „Daten beim Öffnen des Formulars automatisch abrufen".



Abbildung 2 GetUserProfileByName



Anschließend legen wir uns ein Beispielformular an. Das Formular enthält ein Personenfeld zur Auswahl der Person, dessen Daten wir abrufen möchten, einen Button zum Abrufen der Datenverbindung und Felder zum Anzeigen der Benutzerprofildaten.

An den Button benötigen wir eine Regel mit zwei Aktionen. Mit der ersten Aktion setzen wir das Query Field „AccountName" auf die AccountId unseres Personenauswahlfeldes. Das bedeutet, wir legen an dieser Stelle fest, welches Benutzerprofil abgefragt werden soll. Die zweite Aktion dient zum Abrufen der Datenverbindung des UserProfileWebservices.




Abbildung 3 Abzufragendes Benutzerprofil festlegen



Anschließend müssen nur noch die Felder zur Anzeige der Benutzerdaten konfiguriert werden. In den Steuerelementeigenschaften der Anzeigefelder legen wir einen Standardwert fest. Folgende Schritte sind dazu notwendig:

1.Standardwert für Steuerelement festlegen – Feld oder Gruppe einfügen
2.Feld „value" aus sekundären Datenverbindung auswählen
3.Daten filtern auswählen
4.Filter hinzufügen
5.Name (aus sekundäre Datenverbindung) ist gleich der Feldnamens im Benutzerprofil

Als Feldname müssen hier die internen Benutzerprofil Eigenschaften angegeben werden. Diese findet man über die Zentraladministration in der UserProficeService Einstellungen heraus.



Abbildung 4 Benutzerdaten auslesen


Im fertigen Beispielformular können wir über das Personenfeld einen SharePoint Benutzer auswählen mit Klick auf den Button „User Profil abfragen" die Benutzereigenschaften in den Formularfeldern anzeigen. In diesem Beispiel wurde bewusst ein Button für die Datenabfrage verwendet. Es ist natürlich auch möglich die Felder direkt beim Öffnen des Formulars zu automatisch zu füllen.





Abbildung 5 User Profile Service – Beispielformular


Hinweis: Bei browserbasierten InfoPath Formularen in denen Webservices abgefragt werden, ist es notwendig, für die Datenverbindung eine Secure Store Target Application zu verwenden. In der Target Application muss ein Service Account mit ausreichend Berechtigungen hinterlegt werden. Die Datenverbindung im InfoPath Formular muss dann in einer Datenverbindungsdatei (.udcx) konvertiert und die angelegte Secure Store Target Application entsprechend hinterlegt werden.

Keine Kommentare:

Kommentar veröffentlichen