Поделиться через


Свойство SPChangeQuery.ChangeTokenStart

Получает или задает токен, который указывает дату и время начала для изменений, которые возвращаются с помощью запроса.

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Property ChangeTokenStart As SPChangeToken
    Get
    Set
'Применение
Dim instance As SPChangeQuery
Dim value As SPChangeToken

value = instance.ChangeTokenStart

instance.ChangeTokenStart = value
public SPChangeToken ChangeTokenStart { get; set; }

Значение свойства

Тип: Microsoft.SharePoint.SPChangeToken
Объект SPChangeToken , который указывает дату и время начала. Исключение SPException возникает, если маркер содержит ссылку на время до начала текущего изменения журнала. Для запуска в начале журнала изменений, присвойте свойству SPChangeTokenStart значение пустая ссылка (Nothing в Visual Basic) .

Замечания

Используйте конструктор SPChangeToken для создания маркер изменений, который может использоваться для задания этого свойства. Или получить объект SPChangeToken путем извлечения из свойства ChangeToken последнего изменения возвращаемого предыдущим вызовом метода GetChanges .

Примеры

Следующий пример является консольным приложением, которое запрашивает журнал изменений для изменения элементов в список сведений о пользователях веб-узла. Обратите внимание, что приложение получает изменения в пакетах, вызвав в цикле метод SPWeb.GetChanges . Во время первого выполнения цикла, значение свойства ChangeTokenStart , пустая ссылка (Nothing в Visual Basic), что означает, что запрос следует начинать в начале журнала изменений. В нижней части цикла код задает свойство ChangeTokenStart значение маркера изменения за последнее изменение в пакет, таким образом, следующий пакет изменений начинается с последнего места.

Imports System
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using siteCollection As SPSite = New SPSite("https://localhost")
         Using webSite As SPWeb = siteCollection.RootWeb

            ' Construct a query.
            Dim query As New SPChangeQuery(False, True)

            ' Set a limit on the number of changes returned on a single trip.
            query.FetchLimit = 500

            ' object type 
            query.Item = True

            ' Get list to query.
            Dim list As SPList = webSite.Lists("User Information List")

            Dim total As Integer = 0

            ' Loop until we reach the end of the log.
            While True

               Dim changes As SPChangeCollection = list.GetChanges(query)
               total += changes.Count

               For Each change As SPChangeItem In changes
                  ' Get the item title.
                  Dim itemName As String = String.Empty
                  Try
                     Dim item As SPListItem = list.GetItemByUniqueId(change.UniqueId)
                     itemName = item.Name
                  Catch ex As ArgumentException
                     itemName = "Item not found"
                  End Try

                  ' Write to the console.
                  Console.WriteLine(vbCrLf + "Date: {0}", change.Time.ToString())
                  Console.WriteLine("Change: {0}", change.ChangeType)
                  Console.WriteLine("Item: {0}", itemName)
               Next change

               ' Break out of loop if we have the last batch.
               If changes.Count < query.FetchLimit Then
                  Exit While
               End If

               ' Otherwise, go get another batch.
               query.ChangeTokenStart = changes.LastChangeToken

            End While

            Console.WriteLine(vbCrLf + "Total of {0} changes", total)

         End Using
      End Using

      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()

   End Sub
End Module
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.RootWeb)
            {

               // Construct a query.
               SPChangeQuery query = new SPChangeQuery(false, true); 

               // Set a limit on the number of changes returned on a single trip.
               query.FetchLimit = 500;

               // object type 
               query.Item = true;

               // list to query
               SPList list = webSite.Lists["User Information List"];

               int total = 0;

               // Loop until we reach the end of the log.
               while (true)
               {

                  SPChangeCollection changes = list.GetChanges(query);
                  total += changes.Count;

                  foreach (SPChangeItem change in changes)
                  {
                     // Get the item title.
                     string itemName = String.Empty;
                        try
                        {
                           SPListItem item = list.GetItemByUniqueId(change.UniqueId);
                           itemName = item.Name;
                        }
                        catch (ArgumentException)
                        {
                           itemName = "Item not found";
                        }

                     // Write to the console.
                     Console.WriteLine("\nDate: {0}", change.Time.ToString());
                     Console.WriteLine("Change: {0}", change.ChangeType);
                     Console.WriteLine("Item: {0}", itemName);
                  }

                  // Break out of loop if we have the last batch.
                  if (changes.Count < query.FetchLimit)
                     break;

                  // Otherwise, go get another batch.
                  query.ChangeTokenStart = changes.LastChangeToken;
               }

               Console.WriteLine("\nTotal changes = {0:#,#}", total);
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}

См. также

Справочные материалы

SPChangeQuery класс

Элементы SPChangeQuery

Пространство имен Microsoft.SharePoint