Sie kennen vielleicht die Tipps, mit denen es zum einen in InfoPath möglich ist, Personen aus dem AD auszuwählen über das Contact Selector-Steuerelement. Die Auswahl für den Benutzer sieht dann z.B. so aus:
Zum anderen gibt es die Möglichkeit in SharePoint-Listen und -Bibliotheken die Datensätze nach dem aktuell angemeldeten Anwender zu filtern, z.B. Erstellt von ist gleich [Ich]:
Wie setzen Sie jedoch folgende Anforderung um?
In InfoPath soll die Personenauswahl getroffen werden, z.B. in einem Feld "Zugewiesen an". Das Formular wird in SharePoint veröffentlicht und es soll eine Ansicht erstellt werden, in der – ähnlich wie in der Standard-Aufgabenliste – ein Filter auf diese Spalte definiert wird, so dass ein Anwender seine nur eigenen Elemente sieht.
Jedoch: Beim Veröffentlichen des Formulars können Felder leider nicht so veröffentlicht werden, dass sie anschließend in SharePoint vom Typ "Person oder Gruppe" sind. Stattdessen liegt die Personenauswahl in einfachen Textfeldern.
Auf ein Textfeld kann nun wiederum kein Filter mit dem Filterkriterium [Ich] gelegt werden…
Abhaken? Nein, die Rettung naht in Form einer Datenansicht, die mit dem SharePoint Designer erstellt wird.
Die Lösung
Wir haben ein Formular mit dem Contact Selector als Bestandteil erstellt und in SharePoint veröffentlicht. Der Contact Selector liefert u.a. den Benutzernamen in einem Feld DisplayName. Die Auswahl des Anwenders wird im Formular einem einfachen Textfeld Name zugewiesen. Einige Formulare sind schon in der Bibliothek vorhanden und unterschiedlichen Benutzern zugeordnet.
Nun öffnen wir die Site im SharePoint Designer und dort z.B. die Startseite default.aspx, auf der wir die Datenansicht einbinden werden.
Nun gehen wir folgendermaßen vor:
- Zuerst den Aufgabenbereich Datenquellenbibliothek öffnen.
- Dort die SharePoint-Bibliotheken öffnen und die gewünschte Bibliothek anklicken, in unserem Fall ist das die Bibliothek AccountTest.
- Im DropDown-Menü klicken wir auf Daten anzeigen.
- Jetzt selektieren wir rechts in der Detailansicht einige Spalten, z.B. Name (zur Verwendung in Formularen), Name* und weitere gewünschte Spalten (* in unserem Fall haben wir die Spalte mit dem Benutzernamen aus InfoPath auch "Name" genannt).
- Nun ziehen wir die Auswahl in eine Webpartzone im Entwurf unserer default.aspx.
- Die Spalten und Inhalte werden nun in einer Datenansicht angezeigt, klicken Sie dort rechts auf den kleinen Pfeil und anschließend auf Filter:
Jetzt wird’s etwas verrückt, falls jemand für die folgenden Schritte einen besseren Weg kennt, bitte melden! Wir benötigen eine XSLT-Filterung, allerdings steht unser Filterparameter erst zur Verfügung, wenn wir einen "normalen" Filter definieren (und diesen anschließend wieder entfernen…).
- Wählen Sie nun als Filterkriterium z.B. Erstellt von gleich [Aktueller Benutzer] und klicken auf OK:
- Öffnen Sie das Dialogfeld erneut und löschen dieses Filterkriterium wieder.
- Jetzt müssen wir eine XSLT-Filterung hinzufügen, aktivieren Sie daher im Dialogfeld Filterkriterien diese Option und klicken auf Bearbeiten.
- Im Eingabefeld XPATH-Ausdruck bearbeiten und folgende Formel eingeben:
Wobei Sie hier anstatt @Name natürlich Ihre Spaltenbezeichnung verwenden, die Sie aus dem Formular verwenden. - Die Variable $UserID steht seltsamerweise erst dann zur Verfügung, wenn diese schon einmal im normalen Filter verwendet wurde… (der Filter wird dann anschließend einfach wieder wie beschrieben gelöscht).
- Bestätigen Sie die Dialogfelder mit OK.
Und siehe da: Nur noch die Formulare des angemeldeten Benutzers werden angezeigt!
Viel Spaß, und vielleicht gibt es ja auch eine ganz simple Lösung, von der wir gerne hören.

Hallo,
kann es sein, dass der Filter nicht $UserID, sondern @UserID lauten muss?!
Bei mir wird nur mit der @-Schreibweise der Befehl umgesetzt.
Welches Feld aus dem Contact Selector-Steuerelement muss gefiltert werden? Der DisplayName?
Freundliche Grüße