Lists.GetListItemChangesSinceToken - Méthode
Renvoie les modifications apportées à la liste depuis la date et l'heure spécifiée dans le jeton.
Espace de noms : WebSvcLists
Assembly : STSSOAP (dans STSSOAP.dll)
Syntaxe
'Déclaration
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/GetListItemChangesSinceToken", RequestNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
ResponseNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function GetListItemChangesSinceToken ( _
listName As String, _
viewName As String, _
query As XmlNode, _
viewFields As XmlNode, _
rowLimit As String, _
queryOptions As XmlNode, _
changeToken As String, _
contains As XmlNode _
) As XmlNode
'Utilisation
Dim instance As Lists
Dim listName As String
Dim viewName As String
Dim query As XmlNode
Dim viewFields As XmlNode
Dim rowLimit As String
Dim queryOptions As XmlNode
Dim changeToken As String
Dim contains As XmlNode
Dim returnValue As XmlNode
returnValue = instance.GetListItemChangesSinceToken(listName, _
viewName, query, viewFields, rowLimit, _
queryOptions, changeToken, contains)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/GetListItemChangesSinceToken", RequestNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
ResponseNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public XmlNode GetListItemChangesSinceToken(
string listName,
string viewName,
XmlNode query,
XmlNode viewFields,
string rowLimit,
XmlNode queryOptions,
string changeToken,
XmlNode contains
)
Paramètres
listName
Type : System.StringChaîne qui contient le titre ou le GUID de la liste. Lors de l'interrogation de la table UserInfo, la chaîne contient UserInfo. L'utilisation des résultats GUID de meilleures performances.
viewName
Type : System.StringChaîne qui contient le GUID de l'affichage, ce qui détermine l'affichage à utiliser pour les attributs d'affichage par défaut représentés par les paramètres query, viewFieldset rowLimit . Si cet argument n'est pas fourni, la vue par défaut est supposée. S'il est fourni, la valeur du paramètre query, viewFieldsou rowLimit remplace le paramètre équivalent au sein de l'affichage. Par exemple, si l'affichage spécifié par le paramètre viewFields a une limite de ligne de 100 lignes, mais le paramètre rowLimit contient 1000, 1 000 lignes sont retournées dans la réponse.
query
Type : System.Xml.XmlNodeUn élément de requête contenant la requête qui détermine quels enregistrements sont renvoyés et dans quel ordre et qui peuvent être affectés à un objet System.Xml.XmlNode , comme dans l'exemple suivant.
viewFields
Type : System.Xml.XmlNodeUn élément ViewFields qui spécifie les champs à renvoyer dans la requête et dans quel ordre, et qui peut être affecté à un objet System.Xml.XmlNode , comme dans l'exemple suivant.
rowLimit
Type : System.StringChaîne qui spécifie le nombre d'éléments ou des lignes, à afficher sur une page avant le début de la pagination. Si fourni, la valeur de ce paramètre remplace la limite de ligne définie dans l'affichage spécifié par le paramètre viewName ou la limite de ligne définie dans la vue par défaut pour la liste.
queryOptions
Type : System.Xml.XmlNodeFragment XML sous la forme suivante, qui contient des nœuds distincts pour les différentes propriétés de l'objet SPQuery , et qui peuvent être affectés à un objet System.Xml.XmlNode .
changeToken
Type : System.StringA string that contains the change token for the request. For a description of the format that is used in this string, see Overview: Change Tokens, Object Types, and Change Types. If une référence Null (Rien dans Visual Basic) is passed, all items in the list are returned.
contains
Type : System.Xml.XmlNodeUn élément Contains qui définit le filtrage personnalisé pour la requête et qui peuvent être affectés à un objet System.Xml.XmlNode , comme dans l'exemple suivant.
Valeur renvoyée
Type : System.Xml.XmlNode
Un fragment XML sous la forme suivante qui renvoie la dernière modification des modifications de jeton et un élément, qui peut être attribuée à un objet System.Xml.XmlNode :
<listitems MinTimeBetweenSyncs="0" RecommendedTimeBetweenSyncs="180" MaxBulkDocumentSyncSize="500"
AlternateUrls="http://MyServer/,http://zinzinzin/" EffectivePermMask="FullMask"
xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"
xmlns="https://schemas.microsoft.com/sharepoint/soap/">
<Changes LastChangeToken="1;3;b0c07dce-e4c7-45a9-8b7f-0d5339f69633;633247934080930000;70853">
</Changes>
<rs:data ItemCount="2">
<z:row ows_Attachments="0" ows_LinkTitle="MyItem1" ows_MetaInfo="3;#" ows__ModerationStatus="0"
ows__Level="1" ows_Title="MyItem1" ows_ID="3" ows_owshiddenversion="2"
ows_UniqueId="3;#{9153FDD3-7C00-47E9-9194-956BB20AAA8D}" ows_FSObjType="3;#0"
ows_Created_x0020_Date="3;#2007-08-31T21:34:59Z" ows_Created="2007-08-31T21:34:59Z"
ows_FileLeafRef="3;#3_.000" ows_FileRef="3;#sites/MyWebSite/Lists/MyList/3_.000"
ows_ServerRedirected="0" />
<z:row ows_Attachments="0" ows_LinkTitle="MyItem2" ows_MetaInfo="5;#" ows__ModerationStatus="0"
ows__Level="1" ows_Title="MyItem2" ows_ID="5" ows_owshiddenversion="3"
ows_UniqueId="5;#{5BDBB1C0-194D-4878-B716-E397B0C1318C}" ows_FSObjType="5;#0"
ows_Created_x0020_Date="5;#2007-08-31T21:43:23Z" ows_Created="2007-08-31T21:43:23Z"
ows_FileLeafRef="5;#5_.000" ows_FileRef="5;#sites/MyWebSite/Lists/MyList/5_.000"
ows_ServerRedirected="0" />
...
</rs:data>
</listitems>
Remarques
Le tableau suivant décrit les paramètres de retour.
Propriété |
Définition |
---|---|
MinTimeBetweenSyncs |
Représente la durée minimale entre la synchronisation automatique ou initiées par l'utilisateur. La valeur représente une durée en minutes. Notes Les clients doivent respecter cette valeur même si l'utilisateur lance la synchronisation manuellement. En d'autres termes, si cela est défini sur 5 minutes, les clients doivent uniquement envoyer une seule demande par 5 minutes même si l'utilisateur clique à plusieurs reprises sur « Envoyer/recevoir ». |
RecommendedTimeBetweenSyncs |
Représente la durée minimale recommandée entre les synchronisations. Cela doit spécifiquement être respectée pour les synchronisations automatiques. Clients ne doivent jamais automatiquement synchroniser plus souvent que cela. Synchronisations initiées par l'utilisateur peuvent remplacer cet intervalle. |
MaxBulkDocumentSyncSize |
La taille totale du contenu qui doit être synchronisé avec le client. La valeur par défaut est de 500 Mo. Vous obtenez l'URL et les métadonnées pour chaque document lorsque vous appeler GetListItemChangesSinceToken, mais vous puis que vous avez besoin de faire un HTTP GET pour extraire le contenu du document réel. Définissez cette valeur sur haute peut dégrader les performances. |
AlternateUrls |
Les URL de remplacement sont répertoriées dans l'ordre des zones suivantes, séparées par des virgules : Intranet,Default,Extranet,Internet,Custom |
EffectiveBasePermissions |
Les autorisations sur la liste renvoyée par SPList.EffectiveBasePermissions.ToString(). |
Exemples
L'exemple de code suivant utilise la méthode GetListItemChangesSinceToken pour afficher le jeton de modification actuel qui se traduit à la liste chaque fois qu'une fois les mises à jour ultérieures.
Dim listService As New Web_Reference_Folder.Lists()
listService.Credentials = System.Net.CredentialCache.DefaultCredentials
listService.Url = "http://MyServer/MyWebSite/_vti_bin/Lists.asmx"
Dim getListName As XmlNode = listService.GetList("MyCalendar")
Dim listName As String = getListName.Attributes("Name").Value
Dim getFirstToken As XmlNode = listService.GetListItemChangesSinceToken(listName, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)
Dim currentToken As String = getFirstToken.ChildNodes(1).Attributes("LastChangeToken").Value
label1.Text = currentToken + ControlChars.Lf
Dim strEditItemTitle As String = "My New Title"
Dim strBatchEdit As String = "<Batch OnError='Continue'><Method ID='0' Cmd='Update'>" +
"<Field Name='Title'>" + strEditItemTitle + "</Field>" +
"<Field Name='ID'>2</Field>" +
"<Field Name='EventDate'>2007-10-11T14:00:00Z</Field>" +
"<Field Name='EndDate'>2007-10-12T14:00:00Z</Field>" +
"</Method></Batch>"
Dim doc = New System.Xml.XmlDocument()
doc.LoadXml(strBatchEdit)
Dim editUpdates As XmlNode = doc.DocumentElement
Try
listService.UpdateListItems(listName, editUpdates)
Catch ex1 As System.Web.Services.Protocols.SoapException
MessageBox.Show((ex1.Message + ControlChars.Lf + ex1.Detail.InnerText + ControlChars.Lf + ex1.StackTrace))
End Try
Dim getSecondToken As XmlNode = listService.GetListItemChangesSinceToken(listName, Nothing, Nothing, Nothing, Nothing, Nothing, currentToken, Nothing)
currentToken = getSecondToken.ChildNodes(1).Attributes("LastChangeToken").Value
label1.Text += currentToken + ControlChars.Lf
Dim strNewItemTitle As String = "My New Item"
Dim strBatchNew As String = "<Batch OnError='Continue'><Method ID='0' Cmd='New'>" +
"<Field Name='ID'>New</Field>" +
"<Field Name='Title'>" + strNewItemTitle + "</Field>" +
"<Field Name='EventDate'>2007-10-2T14:00:00Z</Field>" +
"<Field Name='EndDate'>2007-10-3T14:00:00Z</Field>" +
"</Method></Batch>"
doc = New System.Xml.XmlDocument()
doc.LoadXml(strBatchNew)
Dim addUpdates As XmlNode = doc.DocumentElement
Try
listService.UpdateListItems(listName, addUpdates)
Catch ex2 As System.Web.Services.Protocols.SoapException
MessageBox.Show((ex2.Message + ControlChars.Lf + ex2.Detail.InnerText + ControlChars.Lf + ex2.StackTrace))
End Try
Dim getThirdToken As XmlNode = listService.GetListItemChangesSinceToken(listName, Nothing, Nothing, Nothing, Nothing, Nothing, currentToken, Nothing)
currentToken = getThirdToken.ChildNodes(1).Attributes("LastChangeToken").Value
label1.Text += currentToken
Web_Reference_Folder.Lists listService = new Web_Reference_Folder.Lists();
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
listService.Url = "http://MyServer/MyWebSite/_vti_bin/Lists.asmx";
XmlNode getListName = listService.GetList("MyCalendar");
string listName = getListName.Attributes["Name"].Value;
XmlNode getFirstToken = listService.GetListItemChangesSinceToken(listName, null, null, null, null, null, null, null);
string currentToken = getFirstToken.ChildNodes[1].Attributes["LastChangeToken"].Value;
label1.Text = currentToken + "\n";
string strEditItemTitle = "My New Title";
string strBatchEdit = "<Batch OnError='Continue'><Method ID='0' Cmd='Update'>" +
"<Field Name='Title'>" + strEditItemTitle + "</Field>" +
"<Field Name='ID'>2</Field>" +
"<Field Name='EventDate'>2007-10-11T14:00:00Z</Field>" +
"<Field Name='EndDate'>2007-10-12T14:00:00Z</Field>" +
"</Method></Batch>";
XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(strBatchEdit);
XmlNode editUpdates = doc.DocumentElement;
try
{
listService.UpdateListItems(listName, editUpdates);
}
catch (System.Web.Services.Protocols.SoapException ex1)
{
MessageBox.Show(ex1.Message + "\n" + ex1.Detail.InnerText + "\n" + ex1.StackTrace);
}
XmlNode getSecondToken = listService.GetListItemChangesSinceToken(listName, null, null, null, null, null, currentToken, null);
currentToken = getSecondToken.ChildNodes[1].Attributes["LastChangeToken"].Value;
label1.Text += currentToken + "\n";
string strNewItemTitle = "My New Item";
string strBatchNew = "<Batch OnError='Continue'><Method ID='0' Cmd='New'>" +
"<Field Name='ID'>New</Field>" +
"<Field Name='Title'>" + strNewItemTitle + "</Field>" +
"<Field Name='EventDate'>2007-10-2T14:00:00Z</Field>" +
"<Field Name='EndDate'>2007-10-3T14:00:00Z</Field>" +
"</Method></Batch>";
doc = new System.Xml.XmlDocument();
doc.LoadXml(strBatchNew);
XmlNode addUpdates = doc.DocumentElement;
try
{
listService.UpdateListItems(listName, addUpdates);
}
catch (System.Web.Services.Protocols.SoapException ex2)
{
MessageBox.Show(ex2.Message + "\n" + ex2.Detail.InnerText + "\n" + ex2.StackTrace);
}
XmlNode getThirdToken = listService.GetListItemChangesSinceToken(listName, null, null, null, null, null, currentToken, null);
currentToken = getThirdToken.ChildNodes[1].Attributes["LastChangeToken"].Value;
label1.Text += currentToken;