Abfragen bestimmter Änderungen aus dem Änderungsprotokoll
Letzte Änderung: Mittwoch, 29. Juli 2009
Gilt für: SharePoint Foundation 2010
Inhalt dieses Artikels
Konstruieren einer Abfrage
Filtern nach Objekttyp
Filtern nach Änderungstyp
Sie können die Auswahl an Änderungen einschränken, die in einer Änderungsauflistung zurückgegeben werden, indem Sie ein SPChangeQuery-Objekt an eine Überladung der GetChanges-Methode der SPList-, SPWeb-, SPSite- oder SPContentDatabase-Klasse übergeben. Beim Konstruieren eines SPChangeQuery-Objekts können Sie angeben, dass Sie die Ergebnisse der Abfrage nach Objekttyp, Änderungstyp oder beidem filtern möchten.
Konstruieren einer Abfrage
Wenn Sie die von einem Aufruf der GetChanges(SPChangeQuery)-Methode zurückgegebenen Ergebnisse filtern möchten, verwenden Sie die Parameter des SPChangeQuery-Konstruktors in Kombination mit den Eigenschaften des SPChangeQuery-Objekts.
Die Signatur des Konstruktors lautet wie folgt:
public SPChangeQuery(bool AllChangeObjectTypes, bool AllChangeTypes);
So verwenden Sie die beiden Parameter des Konstruktors:
AllChangeObjectTypes
Übergeben Sie true, um Änderungen an allen Objekttypen zurückzugeben. Übergeben Sie false, um die Abfrage auf bestimmte Objekttypen zu beschränken. Legen Sie dann true in den Eigenschaften des SPChangeQuery-Objekts fest, die den gewünschten Objekttypen entsprechen.
Mit dem folgenden Code wird beispielsweise eine Abfrage nach Änderungen an SPGroup-Objekten konstruiert.
// Construct a query. SPChangeQuery query = new SPChangeQuery(false, true); // Specify the object type. query.Group = true;
AllChangeTypes
Übergeben Sie true, um alle Arten von Änderungen zurückzugeben. Übergeben Sie false, um die Abfrage auf bestimmte Arten von Änderungen zu beschränken. Legen Sie dann true in den Eigenschaften des SPChangeQuery-Objekts fest, die den gewünschten Arten von Änderungen entsprechen.
Mit dem folgenden Code wird beispielsweise eine Abfrage nach Änderungen konstruiert, mit denen Objekte gelöscht werden.
// Construct a query. SPChangeQuery query = new SPChangeQuery(true, false); // Specify the change type. query.Delete = true;
Wenn Sie die Abfrage auf bestimmte Arten von Änderungen an bestimmten Objekttypen einschränken möchten, können Sie false als Argument an beide Parameter übergeben. Mit dem folgenden Code wird beispielsweise eine Abfrage nach Änderungen konstruiert, mit denen Listenelemente hinzugefügt, gelöscht oder aktualisiert werden.
// Construct a query.
SPChangeQuery query = new SPChangeQuery(false, false);
// Specify the object type.
query.Item = true;
// And the change types.
query.Add = true;
query.Delete = true;
query.Update = true;
Filtern nach Objekttyp
In der folgenden Tabelle sind die Eigenschaften der SPChangeQuery-Klasse aufgeführt, mit der Sie die Objekttypen angeben können, für die Änderungen zurückgegeben werden sollen. Wenn Sie Änderungen für einen bestimmten Objekttyp abrufen möchten, legen Sie die entsprechende Eigenschaft auf true fest. Änderungseinträge werden als Unterklasse von SPChange mit für diesen Objekttyp spezifischen Eigenschaften zurückgegeben. Die SPChangeUser-Unterklasse stellt beispielsweise eine Änderung an einem SPUser-Objekt dar und besitzt eine IsSiteAdminChange-Eigenschaft, die ein Merkmal einer Änderung an diesem Objekttyp angibt.
Tabelle 1. Eigenschaften zur Angabe eines Objekttyps
Eigenschaft |
Beschreibung |
Zurückgegebene Unterklasse |
Änderungen an SPAlert-Objekten sind eingeschlossen. |
||
Änderungen an SPContentType-Objekten sind eingeschlossen. |
||
Änderungen an SPField-Objekten sind eingeschlossen. |
||
Änderungen an Dateien, die sich außerhalb einer Liste befinden und für die keine entsprechenden Elemente vorhanden sind, sind eingeschlossen. |
||
Änderungen an Ordnern, die sich außerhalb einer Liste befinden und für die keine entsprechenden Elemente vorhanden sind, sind eingeschlossen. |
||
Änderungen an SPGroup-Objekten sind eingeschlossen. |
||
Änderungen an allen Objekten in einer Liste sind eingeschlossen: Listenelemente, Dateien und Ordner. |
||
Änderungen an SPList-Objekten sind eingeschlossen. |
||
Änderungen an Sicherheitsrichtlinien, die auf Webanwendungsebene vorgenommen werden und Auswirkungen auf die gesamte Inhaltsdatenbank haben, sind eingeschlossen. |
||
Änderungen an SPSite-Objekten sind eingeschlossen. |
||
Änderungen an SPUser-Objekten sind eingeschlossen. |
||
Änderungen an SPView-Objekten sind eingeschlossen. |
||
Änderungen an SPWeb-Objekten sind eingeschlossen. |
Filtern nach Änderungstyp
In der folgenden Tabelle sind die Eigenschaften der SPChangeQuery-Klasse aufgeführt, mit der Sie die Arten von Änderungen an Objekten angeben können, die von einer Abfrage zurückgegeben werden sollen. Wenn Sie eine bestimmte Art von Änderung abrufen möchten, legen Sie die entsprechende Eigenschaft auf true fest. Beachten Sie jedoch, dass nicht alle Arten von Änderungen für alle Objekttypen gelten.
Tabelle 2. Eigenschaften zur Angabe einer Art von Änderung
Eigenschaft |
Beschreibung |
Objekthinzufügungen sind eingeschlossen. Für Elemente, Dateien und Ordner sollte der TimeLastModified-Wert im Protokoll mit der Created-Eigenschaft des Objekts übereinstimmen. |
|
Objektlöschungen sind eingeschlossen. |
|
Änderungen, mit denen Benutzer Gruppen hinzugefügt werden, sind eingeschlossen. |
|
Änderungen, mit denen Benutzer aus Gruppen entfernt werden, sind eingeschlossen. |
|
Verschiebungen sind eingeschlossen. |
|
Änderungen an der Navigation sind eingeschlossen. |
|
Namensänderungen sind eingeschlossen. Dies bedeutet, dass der Teil des URLs mit dem Dateinamen geändert wurde. |
|
Änderungen, mit denen Objekte aus dem Papierkorb oder aus einer Sicherung wiederhergestellt werden, sind eingeschlossen. Durch Wiederherstellungsänderungen wird dem Leser des Änderungsprotokolls eines Synchronisierungsclients angezeigt, dass das Objekt und alle untergeordneten Elemente erneut synchronisiert werden müssen. |
|
Änderungen, mit denen eine Rollenzuweisung im Objektbereich hinzugefügt wird, sind eingeschlossen. |
|
Änderungen, mit denen eine Rollenzuweisung im Objektbereich entfernt wird, sind eingeschlossen. |
|
Änderungen, mit denen eine Rollendefinition hinzugefügt wird, sind eingeschlossen. |
|
Änderungen, mit denen eine Rollendefinition gelöscht wird, sind eingeschlossen. |
|
Änderungen, mit denen eine Rollendefinition geändert wird, sind eingeschlossen. |
|
Änderungen, mit denen ein Objekt geändert wird, ohne dass die Modified- oder Modified By-Eigenschaft geändert wird, sind eingeschlossen. Der TimeLastModified-Wert im Protokoll sollte die Zeit angeben, zu der die Aktualisierung erfolgte, nicht die Modified-Eigenschaft. |
|
Änderungen, mit denen ein Objekt geändert wird, sind eingeschlossen. |
Siehe auch
Aufgaben
Gewusst wie: Filtern des Änderungsprotokolls nach Objekttyp
Gewusst wie: Filtern des Änderungsprotokolls nach Änderungstyp