(SPChangeToken, SPChangeToken) del método SPList.GetChanges
Devuelve una colección de cambios registrados en un período de tiempo especificado.
Espacio de nombres: Microsoft.SharePoint
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 SPList
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
Tipo: Microsoft.SharePoint.SPChangeTokenLa fecha y hora de inicio.
changeTokenEnd
Tipo: Microsoft.SharePoint.SPChangeTokenLa fecha y la hora final.
Valor devuelto
Tipo: Microsoft.SharePoint.SPChangeCollection
Los cambios.
Excepciones
Excepción | Condición |
---|---|
SPException | changeToken o changeTokenEnd no es un token válido. |
Comentarios
Al construir los objetos SPChangeToken para usar con este método, pase SPChangeCollection.CollectionScope. List como primer argumento del constructor, el valor de la actual propiedad del objeto SPList.ID como segundo argumento y un objeto de DateTime como el tercer argumento.
Además, se aplican las siguientes reglas:
Si uno de los tokens hace referencia a una hora antes del inicio del registro de cambios actual, el método produce una excepción.
Si la hora del segundo token es anterior a la hora del 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 de los cambios realizados en una lista durante un período de siete días. Después de recuperar los cambios, la aplicación imprime información acerca de cada cambio en la consola.
using System;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.OpenWeb())
{
// Get a list.
SPList list = webSite.Lists[0];
SPChangeToken startToken = new SPChangeToken(
SPChangeCollection.CollectionScope.List,
list.ID,
new DateTime(2008, 10, 12));
SPChangeToken endToken = new SPChangeToken(
SPChangeCollection.CollectionScope.List,
list.ID,
new DateTime(2008, 10, 18));
SPTimeZone timeZone = webSite.RegionalSettings.TimeZone;
int total = 0;
// Get the first batch of changes.
SPChangeCollection changes = list.GetChanges(startToken, endToken);
// Loop until we reach the end of the log.
while (changes.Count > 0)
{
total += changes.Count;
// Print info about each change to the console.
foreach (SPChange change in changes)
{
Console.WriteLine("\nDate: {0}",
timeZone.UTCToLocalTime(change.Time).ToString());
Console.WriteLine("Object type: {0}", change.GetType().ToString());
Console.WriteLine("Change: {0}", change.ChangeType.ToString());
}
// Go get another batch.
startToken = changes.LastChangeToken;
changes = list.GetChanges(startToken, endToken);
}
Console.WriteLine("\nTotal of {0} changes to {1} list", total, list.Title);
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.OpenWeb()
' Get a list.
Dim list As SPList = webSite.Lists(0)
Dim startToken As New SPChangeToken(SPChangeCollection.CollectionScope.List, _
list.ID, _
New DateTime(2008, 10, 12))
Dim endToken As New SPChangeToken(SPChangeCollection.CollectionScope.List, _
list.ID, _
New DateTime(2008, 10, 18))
Dim timeZone As SPTimeZone = webSite.RegionalSettings.TimeZone
Dim total As Integer = 0
' Get the first batch of changes.
Dim changes As SPChangeCollection = list.GetChanges(startToken, endToken)
' Loop until we reach the end of the log.
While changes.Count > 0
total += changes.Count
' Print info about each change to the console.
For Each change As SPChange In changes
Console.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
Console.WriteLine("Object type: {0}", change.GetType().ToString())
Console.WriteLine("Change: {0}", change.ChangeType.ToString())
Next change
' Go get another batch of changes starting where we left off.
startToken = changes.LastChangeToken
changes = list.GetChanges(startToken, endToken)
End While
Console.WriteLine(vbCrLf + "Total of {0:#,#} changes to {1} list", total, list.Title)
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
Vea también
Referencia
Espacio de nombres Microsoft.SharePoint