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

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

SPContentDatabase class

SPContentDatabase members

GetChanges overload

Microsoft.SharePoint.Administration namespace

Outros recursos

Using the Change Log