SPWeb.GetChanges method
Obtém todas as alterações relacionadas no log de alteração atual do site.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Function GetChanges As SPChangeCollection
'Uso
Dim instance As SPWeb
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges()
public SPChangeCollection GetChanges()
Valor retornado
Type: Microsoft.SharePoint.SPChangeCollection
As alterações.
Comentários
O número total de alterações retornados por uma consulta contra o log de alteração pode ser muito grande. Por motivos de desempenho, as alterações são retornadas em lotes de até 2000. Esse método de sobrecarga retorna o primeiro lote de alterações são registrados no log.
Para obter todas as alterações, em vez de apenas o primeiro lote, chame este método em um loop até que ele retorne um conjunto com 0 alterações, significando que atingiu o final do log. Use a propriedade ChangeToken da última alteração do primeiro lote para obter o segundo lote e assim por diante, até obter uma coleção vazia. Para obter um exemplo, consulte o método GetChanges(SPChangeToken) .
Dica
Por padrão, o log de alterações retém dados por 60 dias. Você pode configurar o período de retenção, definindo a propriedade ChangeLogRetentionPeriod .
Examples
O exemplo é um aplicativo de console que usa o método GetChanges para criar um arquivo de log que contém informações sobre o primeiro lote de alterações listadas no log de alteração.
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
Ver também
Referência
Microsoft.SharePoint namespace