Compartir a través de


(SPChangeToken, SPChangeToken) del método SPContentDatabase.GetChanges

Devuelve una colección de los cambios que se hayan registrado durante un período de tiempo especificado.

Espacio de nombres:  Microsoft.SharePoint.Administration
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
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 devuelto

Tipo: Microsoft.SharePoint.SPChangeCollection
Una colección de objetos de SPChange que representan los cambios.

Comentarios

Las siguientes reglas se aplican a los tokens de cambio que se pasan como argumentos.

  • Si alguno de los dos tokens se refiere a un tiempo anterior al inicio del registro de cambios actual, el método genera una excepción SPException.

  • Si el tiempo especificado por el segundo token es anterior al tiempo especificado por el primer token, el método devuelve una colección vacía.

  • Si el primer token es una referencia null (Nothing en Visual Basic), la colección de cambios que se devuelve comienza al principio del registro de cambios actual.

  • Si el segundo token es una referencia null (Nothing en Visual Basic), la colección de cambios que se devuelve incluye todos los cambios posteriores a la fecha especificada por el primer token de cambio, hasta el límite para una única colección. Si en este período hubo más cambios, se devuelve el primer lote.

Nota

De forma predeterminada, el registro de cambios conserva los datos durante 60 días. Puede configurar el período de retención estableciendo la propiedad ChangeLogRetentionPeriod .

Ejemplos

En el siguiente ejemplo es una aplicación de consola que consulta el registro de cambios para que los cambios que tuvieron lugar durante un período de siete días. A continuación, la aplicación imprime información acerca de cada cambio en la consola.

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

Vea también

Referencia

clase SPContentDatabase

Miembros SPContentDatabase

Sobrecarga GetChanges

Espacio de nombres Microsoft.SharePoint.Administration

Otros recursos

Using the Change Log