SPWeb.GetChanges-Methode

Ruft alle Änderungen, die in der aktuellen Änderungsprotokolls für die Website aufgelistet.

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

Syntax

'Declaration
Public Function GetChanges As SPChangeCollection
'Usage
Dim instance As SPWeb
Dim returnValue As SPChangeCollection

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

Rückgabewert

Typ: Microsoft.SharePoint.SPChangeCollection
Die Änderungen.

Hinweise

Die Gesamtzahl der Änderungen zurückgegeben, die von einer Abfrage für das Änderungsprotokoll kann sehr groß sein. Aus Gründen der Systemleistung sind Änderungen in Batches von bis zu 2000 zurückgegeben. Diese Überladung-Methode gibt nur die erste Gruppe von Änderungen im Protokoll aufgezeichnet.

Wenn Sie alle Änderungen anstatt nur die erste Gruppe erhalten möchten, rufen Sie diese Methode in einer Schleife, bis es gibt eine Auflistung mit 0 Änderungen, womit angezeigt wird, dass sie das Ende des Protokolls erreicht wurde. Verwenden Sie die ChangeToken -Eigenschaft von der letzten Änderung der ersten batchnamen zum Abrufen der zweiten Batch und So weiter, bis Sie eine leere Auflistung erhalten. Ein Beispiel finden Sie unter der GetChanges(SPChangeToken) -Methode.

Hinweis

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

Beispiele

Das Beispiel ist eine Konsolenanwendung, die die GetChanges -Methode verwendet, um das Erstellen einer Protokolldatei mit Informationen zu den ersten Teil der Änderungen im Änderungsprotokoll aufgeführt.

using System;
using System.IO;
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;
               string fileName = "ChangeLog.txt";
               StreamWriter writer = File.AppendText(fileName);

               SPChangeCollection changes = webSite.GetChanges();

               foreach (SPChange change in changes)
               {
                  writer.WriteLine( "\r\nDate: {0}", timeZone.UTCToLocalTime(change.Time).ToString());
                  writer.WriteLine("Object type: {0}", change.GetType().ToString());
                  writer.WriteLine("Change type: {0}", change.ChangeType);
               }

               writer.WriteLine("\r\nTotal changes = {0:#,#}", changes.Count);
               writer.Flush();
               writer.Close();

               Console.WriteLine("{0} changes written to {1}", changes.Count, fileName);
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}
Imports System
Imports System.IO
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 fileName As String = "ChangeLog.txt"
            Dim writer As StreamWriter = File.AppendText(fileName)

            Dim changes As SPChangeCollection = webSite.GetChanges()

            For Each change As SPChange In changes
               writer.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
               writer.WriteLine("Object type: {0}", change.GetType().ToString())
               writer.WriteLine("Change type: {0}", change.ChangeType)
            Next change

            writer.WriteLine(vbCrLf + "Total changes = {0:#,#}", changes.Count)
            writer.Flush()
            writer.Close()

            Console.WriteLine("{0} changes written to {1}", changes.Count, fileName)
         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

Weitere Ressourcen

Using the Change Log