SPContentDatabase.GetChanges method (SPChangeToken, SPChangeToken)
Retorna uma coleção das alterações que fez ao longo de um período de tempo especificado.
Namespace: Microsoft.SharePoint.Administration
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Function GetChanges ( _
changeToken As SPChangeToken, _
changeTokenEnd As SPChangeToken _
) As SPChangeCollection
'Uso
Dim instance As SPContentDatabase
Dim changeToken As SPChangeToken
Dim changeTokenEnd As SPChangeToken
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges(changeToken, _
changeTokenEnd)
public SPChangeCollection GetChanges(
SPChangeToken changeToken,
SPChangeToken changeTokenEnd
)
Parâmetros
changeToken
Type: Microsoft.SharePoint.SPChangeTokenUm objeto SPChangeToken que representa o token de alteração do início.
changeTokenEnd
Type: Microsoft.SharePoint.SPChangeTokenUm objeto SPChangeToken que representa o token de alteração final.
Valor retornado
Type: Microsoft.SharePoint.SPChangeCollection
Uma coleção de objetos SPChange que representam as alterações.
Comentários
As seguintes regras se aplicam a alterar tokens que são passados como argumentos.
Se o token refere-se a um horário antes do início do log de alteração atual, o método gera uma exceção de SPException .
Se a hora especificada por segundo token for anterior a hora especificada pelo primeiro símbolo, o método retornará uma coleção vazia.
Se o primeiro símbolo for a null reference (Nothing in Visual Basic), a coleção de alterações que é retornada começa no início do log de alteração atual.
Se o segundo token for a null reference (Nothing in Visual Basic), a coleção de alterações que é retornada inclui todas as alterações após a data especificada pelo primeiro token de alteração, até o limite de uma única coleção. Se ocorreram alterações mais nesse período, o primeiro lote será retornado.
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 a seguir é um aplicativo de console que consulta o log de alteração para que as alterações que ocorrem durante um período de sete dias. Em seguida, o aplicativo imprime informações sobre cada alteração no console.
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.RootWeb)
{
// We need to do this to get an Id. SPContentDatabase.ID property is obsolete.
SPPersistedObject db = (SPPersistedObject)siteCollection.ContentDatabase;
SPChangeToken startToken = new SPChangeToken(
SPChangeCollection.CollectionScope.ContentDB,
db.Id,
new DateTime(2008, 11, 17));
SPChangeToken endToken = new SPChangeToken(
SPChangeCollection.CollectionScope.ContentDB,
db.Id,
new DateTime(2008, 11, 23));
long total = 0;
SPChangeCollection changes =
siteCollection.ContentDatabase.GetChanges(startToken, endToken);
while (changes.Count > 0)
{
total += changes.Count;
foreach (SPChange change in changes)
{
Console.WriteLine("\nDate: {0}", change.Time.ToShortDateString());
Console.WriteLine("Object type: {0}", change.GetType().ToString());
Console.WriteLine("Change type: {0}", change.ChangeType);
}
startToken = changes.LastChangeToken;
changes = siteCollection.ContentDatabase.GetChanges(startToken, endToken);
}
Console.WriteLine("\nTotal changes = {0:#,#}", total);
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Administration
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.RootWeb
' We need to do this to get an Id. SPContentDatabase.ID property is obsolete.
Dim db As SPPersistedObject = CType(siteCollection.ContentDatabase, SPPersistedObject)
Dim startToken As New SPChangeToken(SPChangeCollection.CollectionScope.ContentDB, _
db.Id, _
New DateTime(2008, 11, 17))
Dim endToken As New SPChangeToken(SPChangeCollection.CollectionScope.ContentDB, _
db.Id, _
New DateTime(2008, 11, 23))
Dim total As Long = 0
Dim changes As SPChangeCollection = _
siteCollection.ContentDatabase.GetChanges(startToken, endToken)
While changes.Count > 0
total += changes.Count
For Each change As SPChange In changes
Console.WriteLine(vbCrLf + "Date: {0}", change.Time.ToShortDateString())
Console.WriteLine("Object type: {0}", change.GetType().ToString())
Console.WriteLine("Change type: {0}", change.ChangeType)
Next change
startToken = changes.LastChangeToken
changes = siteCollection.ContentDatabase.GetChanges(startToken, endToken)
End While
Console.WriteLine(vbCrLf + "Total changes = {0:#,#}", total)
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
Ver também
Referência
Microsoft.SharePoint.Administration namespace