SPWeb.GetChanges - Méthode

Obtient tous les modifications répertoriées dans le journal de modification en cours pour le site Web.

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Function GetChanges As SPChangeCollection
'Utilisation
Dim instance As SPWeb
Dim returnValue As SPChangeCollection

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

Valeur renvoyée

Type : Microsoft.SharePoint.SPChangeCollection
Les modifications apportées.

Remarques

Le nombre total de modifications retournées par une requête sur le journal des modifications peut être très volumineux. Pour des raisons de performances, les modifications sont renvoyées par lots de jusqu'en 2000. Cette méthode surchargée retourne uniquement le premier lot de modifications enregistrées dans le journal.

Pour obtenir l'ensemble de modifications plutôt que seul le premier lot, appelez cette méthode dans une boucle jusqu'à ce qu'elle retourne une collection contenant les modifications 0, ce qui signifie qu'il a atteint la fin du journal. Utilisez la propriété ChangeToken de la dernière modification du premier lot pour obtenir la deuxième lot et ainsi de suite, jusqu'à ce que vous obteniez une collection vide. Pour obtenir un exemple, consultez la méthode GetChanges(SPChangeToken) .

Notes

Par défaut, le journal des modifications conserve les données pendant 60 jours. Vous pouvez configurer la période de rétention en définissant la propriété ChangeLogRetentionPeriod .

Exemples

L'exemple est une application console qui utilise la méthode GetChanges pour créer un fichier journal contenant des informations sur le premier lot de modifications répertoriées dans le journal des modifications.

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

Voir aussi

Référence

SPWeb classe

SPWeb - Membres

GetChanges - Surcharge

Microsoft.SharePoint - Espace de noms

Autres ressources

Using the Change Log