Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/850 33-0

Verwendung von [Me] in SPQuery-Objekten

In Ansichten von Listen besteht die Möglichkeit mittels Platzhalter [Ich] bzw. [Me] auf den aktuellen Nutzer zugreifen, um so in Ansichten Filter für die eigenen Elemente zu erstellen.

Möchte man als Entwickler den gleichen Ansatz auch für die programmatische Erzeugung von Views über SPView- bzw. SPQuery-Objekte verwenden wird man mit dem Ansatz

<Where><Eq><FieldRef Name='Author' /><Value Type='User'>[Me]</Value></Eq></Where>

scheitern, denn auf der Ebene von SPQuery-Objekten stehen die von der Oberfläche bekannten Platzhalter so nicht zur Verfügung.

Von Dave Hunter findet sich im MSDN-Forum ein guter Tipp, wie man die Entsprechungen in CAML ermitteln kann: Man erstellt eine neue Ansicht für eine Liste in der Benutzeroberfläche, in der man die gewünschten Filter definiert. Im Anschluss daran speichert man die Liste als Template und lädt sich die stp-Datei herunter. Nachdem man diese in eine cab-Datei umbenannt hat, findet man darin eine manifest-Datei, die die Liste und damit auch die Ansichten beschreibt. Mit einer Suche nach dem XML-Tag „Query“ findet man das CAML für die Ansicht.
caml filtered by author

Und hier sieht man sehr schön die programmatische Entsprechung des definierten Filters. Um nach dem aktuellen Nutzer als Autor zu filtern, muss diese CAML-Query verwendet werden:

<Where><Eq><FieldRef Name='Author' /><Value Type="Integer"><UserID Type="Integer"/></Value></Eq></Where>

Mit diesem Wissen kann man nun ganz einfach selbst programmatisch SPView-Objekte erstellen, die auf den aktuellen Nutzer filtern können.

1 Kommentar

Neuer Post zum Thema [Me] in SPQuery-Objekten: http://bit.ly/Ro0UW
This comment was originally posted on Twitter

Kommentar hinterlassen


Pin It on Pinterest