Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Verwendung von [Me] in SPQuery-Objekten

In Ansichten von Listen besteht die Möglichkeit mit­tels Platzhalter [Ich] bzw. [Me] auf den aktu­el­len Nutzer zugrei­fen, um so in Ansichten Filter für die eige­nen Elemente zu erstel­len.

Möchte man als Entwickler den glei­chen Ansatz auch für die pro­gram­ma­ti­sche Erzeugung von Views über SPView- bzw. SPQuery-Objekte ver­wen­den wird man mit dem Ansatz

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

schei­tern, denn auf der Ebene von SPQuery-Objekten ste­hen die von der Oberfläche bekann­ten Platzhalter so nicht zur Verfügung.

Von Dave Hunter fin­det sich im MSDN-Forum ein guter Tipp, wie man die Entsprechungen in CAML ermit­teln kann: Man erstellt eine neue Ansicht für eine Liste in der Benutzeroberfläche, in der man die gewünsch­ten Filter defi­niert. Im Anschluss daran spei­chert man die Liste als Template und lädt sich die stp-Datei her­un­ter. Nachdem man diese in eine cab-Datei umbe­nannt hat, fin­det man darin eine manifest-Datei, die die Liste und damit auch die Ansichten beschreibt. Mit einer Suche nach dem XML-Tag "Query" fin­det man das CAML für die Ansicht.
caml filtered by author

Und hier sieht man sehr schön die pro­gram­ma­ti­sche Entsprechung des defi­nier­ten Filters. Um nach dem aktu­el­len Nutzer als Autor zu fil­tern, muss diese CAML-Query ver­wen­det wer­den:

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

Mit die­sem Wissen kann man nun ganz ein­fach selbst pro­gram­ma­tisch SPView-Objekte erstel­len, die auf den aktu­el­len Nutzer fil­tern kön­nen.

1 Kommentar

Neuer Post zum Thema [Me] in SPQuery-Objekten: http://bit.ly/Ro0UW
This com­ment was ori­gi­nally pos­ted on Twitter

Comments are closed.

Pin It on Pinterest