SPWeb.GetChanges-Methode (SPChangeToken)

Ruft ab, die Änderungen, die einen angegebenen Punkt im Änderungsprotokoll ab.

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

Syntax

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

returnValue = instance.GetChanges(changeToken)
public SPChangeCollection GetChanges(
    SPChangeToken changeToken
)

Parameter

Rückgabewert

Typ: Microsoft.SharePoint.SPChangeCollection
Die Änderungen, die seit der Speicherort im Änderungsprotokoll auf der Website vorgenommen wurden durch changeTokenangegeben.

Ausnahmen

Ausnahme Bedingung
SPException

changeToken ist Null .

Hinweise

Wenn Sie ein SPChangeToken -Objekt, das an diese Methode als Argument übergeben möchten, ein von der ChangeToken -Eigenschaft der letzten Änderung von einem vorherigen Aufruf dieser Methode zurückgegebenen zu extrahieren. Oder verwenden Sie den SPChangeToken -Konstruktor zum Erstellen einer neuen Änderungstoken.

Hinweis

Standardmäßig behält das Änderungsprotokoll für 60 Tage Daten. Um den Standard-Aufbewahrungszeitraum zu ändern, legen Sie die ChangeLogRetentionPeriod -Eigenschaft.

Beispiele

Im folgende Beispiel wird eine Konsolenanwendung, die auf alle Änderungen in das Protokoll abrufen veranschaulicht. Das Programm beim Abrufen von Änderungen in den Reihen durchlaufen und die Schleife bricht, wenn es ruft eine Auflistung mit 0 Mitglieder, womit angezeigt wird, dass sie das Ende des Protokolls erreicht wurde.

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.RootWeb)
            {
               SPTimeZone timeZone = webSite.RegionalSettings.TimeZone;
               long total = 0;

               // Start with a null token so we take changes 
               // from the beginning of the log
               SPChangeToken token = null;

               // Get the first batch of changes
                SPChangeCollection changes = webSite.GetChanges(token);

               // Loop until we get zero changes
               while (changes.Count > 0)
               {
                  total += changes.Count;

                  foreach (SPChange change in changes)
                  {
                     // Process the change
                     Console.WriteLine("\nDate: {0}", timeZone.UTCToLocalTime(change.Time).ToString());
                     Console.WriteLine("Type of change: {0}", change.ChangeType.ToString());
                     Console.WriteLine("Object changed: {0}", change.GetType().ToString()); 
                  }

                  // Go get another batch
                  token = changes.LastChangeToken;
                  changes = webSite.GetChanges(token);
               }
               Console.WriteLine("\nTotal = {0:#,#} changes", total);
            }
         }
         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.RootWeb

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

            ' Start with a null token so we take changes 
            ' from the beginning of the log
            Dim token As SPChangeToken = Nothing

            ' Get the first batch of changes
            Dim changes As SPChangeCollection = webSite.GetChanges(token)

            ' Loop until we get zero changes
            While changes.Count > 0
               total += changes.Count

               For Each change As SPChange In changes
                  ' Process the change
                  Console.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
                  Console.WriteLine("Type of change: {0}", change.ChangeType.ToString())
                  Console.WriteLine("Object changed: {0}", change.GetType().ToString())
               Next change

               ' Go get another batch
               token = changes.LastChangeToken
               changes = webSite.GetChanges(token)
            End While

            Console.WriteLine(vbCrLf + "Total = {0:#,#} changes", total)

         End Using
      End Using

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

   End Sub
End Module

Siehe auch

Referenz

SPWeb Klasse

SPWeb-Member

GetChanges-Überladung

Microsoft.SharePoint-Namespace

CurrentChangeToken

Weitere Ressourcen

Using the Change Log