Seiten

Herzlich willkommen im technischen Blog der MindBusiness GmbH
In diesem Blog veröffentlichen wir praxisnahes Know-how, neue Erkenntnisse und Erfahrungen zu Microsoft SharePoint- und Office-Themen direkt aus unserer Berater-, Trainer- und Entwickler-Praxis. Hier finden Sie interessante Lösungen und neue Ideen zu den verschiedensten Anforderungen und Problemen. Unseren News-Blog finden Sie unter newsblog.mindbusiness.de/newsblog. Wir wünschen Ihnen viel Spaß beim Lesen und Stöbern und freuen uns auf den Austausch mit Ihnen.

Personenauswahl in InfoPath und Anzeige "Meine Elemente" in SharePoint

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:

image

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]:

image

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

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:
    image
  • Ö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:
    image
    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!

image

Viel Spaß, und vielleicht gibt es ja auch eine ganz simple Lösung, von der wir gerne hören.

1 Kommentar zu Personenauswahl in InfoPath und Anzeige "Meine Elemente" in SharePoint

  • Thomas

    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

Hinterlasse eine Antwort

 

 

 

Du kannst diese HTML-Tags benutzen

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">