SPList.GetChanges-Methode (SPChangeToken, SPChangeToken)

Gibt eine Auflistung von Änderungen über einen angegebenen Zeitraum protokolliert.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Function GetChanges ( _
    changeToken As SPChangeToken, _
    changeTokenEnd As SPChangeToken _
) As SPChangeCollection
'Usage
Dim instance As SPList
Dim changeToken As SPChangeToken
Dim changeTokenEnd As SPChangeToken
Dim returnValue As SPChangeCollection

returnValue = instance.GetChanges(changeToken, _
    changeTokenEnd)
public SPChangeCollection GetChanges(
    SPChangeToken changeToken,
    SPChangeToken changeTokenEnd
)

Parameter

Rückgabewert

Typ: Microsoft.SharePoint.SPChangeCollection
Die Änderungen.

Ausnahmen

Ausnahme Bedingung
SPException

changeToken oder changeTokenEnd ist kein gültiges Token.

Hinweise

Wenn Sie die SPChangeToken Objekte mit dieser Methode erstellen, übergeben Sie SPChangeCollection.CollectionScope.List als Argument für den Konstruktor ersten, der Wert der SPList.ID -Eigenschaft des aktuellen Objekts, als zweites Argument und ein DateTime -Objekt als drittes Argument.

Darüber hinaus gelten die folgenden Regeln:

  • Wenn entweder Token auf einen Zeitpunkt vor dem Beginn des aktuellen Änderungsprotokolls verweist, löst die Methode eine Ausnahme aus.

  • Wenn die Zeit für das zweite Token vor dem Zeitpunkt des ersten Tokens ist, gibt die Methode eine leere Auflistung.

  • Falls das erste Token ein Nullverweis (Nothing in Visual Basic) ist, beginnt die zurückgegebene Änderungsauflistung am Anfang des aktuellen Änderungsprotokolls.

  • Falls das zweite Token ein Nullverweis (Nothing in Visual Basic) ist, enthält die zurückgegebene Änderungsauflistung alle Änderungen nach dem Datum, das vom ersten Änderungstoken angegeben wird, bis die Grenze für eine einzelne Auflistung erreicht ist. Falls in diesem Zeitraum mehr Änderungen aufgetreten sind, wird der erste Batch zurückgegeben.

Hinweis

Standardmäßig behält das Änderungsprotokoll Daten für 60 Tage. Sie können die Aufbewahrungsdauer konfigurieren, indem die ChangeLogRetentionPeriod -Eigenschaft.

Beispiele

Im folgende Beispiel ist eine Konsolenanwendung, die während eines Zeitraums von sieben Tagen das Änderungsprotokoll für Änderungen an einer Liste abfragt. Nach dem Abrufen der Änderungen, druckt die Anwendung Informationen über jede Änderung an der Konsole.

using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite siteCollection = new SPSite("https://localhost"))
         {
            using (SPWeb webSite = siteCollection.OpenWeb())
            {
               // Get a list.
               SPList list = webSite.Lists[0];

               SPChangeToken startToken = new SPChangeToken(
                  SPChangeCollection.CollectionScope.List,
                  list.ID,
                  new DateTime(2008, 10, 12));

               SPChangeToken endToken = new SPChangeToken(
                  SPChangeCollection.CollectionScope.List,
                  list.ID,
                  new DateTime(2008, 10, 18));


               SPTimeZone timeZone = webSite.RegionalSettings.TimeZone;
               int total = 0;

               // Get the first batch of changes.
               SPChangeCollection changes = list.GetChanges(startToken, endToken);

               // Loop until we reach the end of the log.
               while (changes.Count > 0)
               {
                  total += changes.Count;

                  // Print info about each change to the console.
                  foreach (SPChange change in changes)
                  {
                     Console.WriteLine("\nDate: {0}",
                         timeZone.UTCToLocalTime(change.Time).ToString());
                     Console.WriteLine("Object type: {0}", change.GetType().ToString());
                     Console.WriteLine("Change: {0}", change.ChangeType.ToString());
                  }

                  // Go get another batch.
                  startToken = changes.LastChangeToken;
                  changes = list.GetChanges(startToken, endToken);
               }

               Console.WriteLine("\nTotal of {0} changes to {1} list", total, list.Title);
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}
Imports System
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using siteCollection As SPSite = New SPSite("https://localhost")
         Using webSite As SPWeb = siteCollection.OpenWeb()

            ' Get a list.
            Dim list As SPList = webSite.Lists(0)

            Dim startToken As New SPChangeToken(SPChangeCollection.CollectionScope.List, _
                                                list.ID, _
                                                New DateTime(2008, 10, 12))

            Dim endToken As New SPChangeToken(SPChangeCollection.CollectionScope.List, _
                                              list.ID, _
                                              New DateTime(2008, 10, 18))

            Dim timeZone As SPTimeZone = webSite.RegionalSettings.TimeZone
            Dim total As Integer = 0

            ' Get the first batch of changes.
            Dim changes As SPChangeCollection = list.GetChanges(startToken, endToken)

            ' Loop until we reach the end of the log.
            While changes.Count > 0

               total += changes.Count

               ' Print info about each change to the console.
               For Each change As SPChange In changes
                  Console.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
                  Console.WriteLine("Object type: {0}", change.GetType().ToString())
                  Console.WriteLine("Change: {0}", change.ChangeType.ToString())
               Next change

               ' Go get another batch of changes starting where we left off.
               startToken = changes.LastChangeToken
               changes = list.GetChanges(startToken, endToken)

            End While

            Console.WriteLine(vbCrLf + "Total of {0:#,#} changes to {1} list", total, list.Title)

         End Using
      End Using

      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()

   End Sub
End Module

Siehe auch

Referenz

SPList Klasse

SPList-Member

GetChanges-Überladung

Microsoft.SharePoint-Namespace

Weitere Ressourcen

Using the Change Log