Partager via


SPChangeQuery.ChangeTokenStart - Propriété

Obtient ou définit un jeton qui spécifie la date de début et l'heure pour les modifications qui sont retournés par la requête.

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Property ChangeTokenStart As SPChangeToken
    Get
    Set
'Utilisation
Dim instance As SPChangeQuery
Dim value As SPChangeToken

value = instance.ChangeTokenStart

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

Valeur de propriété

Type : Microsoft.SharePoint.SPChangeToken
Objet SPChangeToken qui spécifie une date et une heure de début. Une exception SPException est levée si le jeton fait référence à une heure avant le début de l'actuel modifier journal. Pour démarrer au début du journal de modification, définissez la propriété SPChangeTokenStart à une valeur de une référence Null (Rien dans Visual Basic) .

Remarques

Utilisez le constructeur SPChangeToken pour créer un jeton de modification qui peut être utilisé pour définir cette propriété. Ou bien, si vous passez un objet SPChangeToken en extrayant un à partir de la propriété ChangeToken de la dernière modification retournée par un appel précédent à la méthode GetChanges .

Exemples

L'exemple suivant est une application console qui interroge le journal modification pour les modifications apportées aux éléments de la liste d'informations utilisateur d'un site Web. Notez que l'application obtient des modifications par lots en appelant la méthode SPWeb.GetChanges dans une boucle. Lors du premier passage dans la boucle, la valeur de la propriété ChangeTokenStart est une référence Null (Rien dans Visual Basic), qui indique que la requête doit commencer au début du journal modification. Au bas de la boucle, le code définit la propriété ChangeTokenStart la valeur du jeton de modification de la dernière modification dans le lot, afin que le lot suivant de modifications commence là où il s'est arrêté.

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();
      }
   }
}

Voir aussi

Référence

SPChangeQuery classe

SPChangeQuery - Membres

Microsoft.SharePoint - Espace de noms