Lists.GetListItemChangesSinceToken method
Retorna as alterações feitas na lista desde a data e hora especificada no token.
Namespace: WebSvcLists
Assembly: STSSOAP (in STSSOAP.dll)
Syntax
'Declaração
<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
'Uso
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
)
Parâmetros
listName
Type: System.StringUma cadeia de caracteres que contém o título ou o GUID da lista. Ao consultar a tabela UserInfo, a cadeia de caracteres contém UserInfo. Usando os resultados GUID em um melhor desempenho.
viewName
Type: System.StringUma cadeia de caracteres que contém a GUID para o modo de exibição, que determina o modo de exibição a ser usado para os atributos de exibição padrão representados pelos parâmetros query, viewFieldse rowLimit . Se esse argumento não for fornecido, o modo de exibição padrão é assumido. Se ele for fornecido, o valor do parâmetro query, viewFieldsou rowLimit substitui a configuração equivalente do modo de exibição. Por exemplo, se o modo de exibição especificado pelo parâmetro viewFields tem um limite de linha de 100 linhas, mas o parâmetro rowLimit contém 1000, 1.000 linhas são retornadas na resposta.
query
Type: System.Xml.XmlNodeUm elemento de consulta que contém a consulta que determina quais registros são retornados e em qual ordem e que podem ser atribuídos a um objeto System.Xml.XmlNode , como no exemplo a seguir.
viewFields
Type: System.Xml.XmlNodeUm elemento ViewFields , que especifica quais campos para retornar na consulta e em qual ordem, e que podem ser atribuídas a um objeto System.Xml.XmlNode , como no exemplo a seguir.
rowLimit
Type: System.StringUma string que especifica o número de itens, ou linhas, para exibir em uma página antes do início da paginação. Se fornecido, o valor desse parâmetro substitui o limite de linha definido na exibição especificado pelo parâmetro viewName ou o limite de linha definido no modo de exibição padrão na lista.
queryOptions
Type: System.Xml.XmlNodeUm fragmento XML no seguinte formato que contém nós separados para as várias propriedades do objeto SPQuery e que podem ser atribuídas a um objeto 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 a null reference (Nothing in Visual Basic) is passed, all items in the list are returned.
contains
Type: System.Xml.XmlNodeUm elemento contém que define a filtragem personalizada para a consulta e que podem ser atribuídas a um objeto System.Xml.XmlNode , como no exemplo a seguir.
Valor retornado
Type: System.Xml.XmlNode
Alterações de item e o token de alterar um fragmento XML no seguinte formato que retorna a última e que podem ser atribuídas a um objeto 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>
Comentários
A tabela a seguir descreve os parâmetros de retorno.
Propriedade |
Definição |
---|---|
MinTimeBetweenSyncs |
Representa o período mínimo de tempo entre a sincronização automática ou iniciadas pelo usuário. O valor representa um tempo em minutos. Dica Os clientes devem respeitar esse valor, mesmo se o usuário inicia a sincronização manualmente. Ou seja, se isso for definido como 5 minutos, o clientes devem apenas enviar uma solicitação por cinco minutos, mesmo se o usuário clica repetidamente "envio/recebimento". |
RecommendedTimeBetweenSyncs |
Representa a quantidade mínima recomendada de tempo entre as sincronizações. Isso especificamente deve ser respeitado para sincronizações automáticas. Clientes devem sincronizar com mais frequência do que isso nunca automaticamente. Sincronizações iniciadas pelo usuário podem substituir esse intervalo. |
MaxBulkDocumentSyncSize |
O tamanho total do conteúdo a serem sincronizados com o cliente. O padrão é 500 MB. Você obtém a URL e metadados para cada documento quando você chamar GetListItemChangesSinceToken, mas depois precisa fazer um HTTP GET para recuperar o conteúdo do documento real. A definição desse valor como alto pode prejudicar o desempenho. |
AlternateUrls |
URLs alternativas estão listados na seguinte ordem zona, delimitado por vírgulas: Intranet, padrão, Extranet, Internet, personalizado |
EffectiveBasePermissions |
As permissões da lista, conforme retornado por SPList.EffectiveBasePermissions.ToString(). |
Examples
O exemplo de código a seguir usa o método GetListItemChangesSinceToken para exibir o token de alteração atual que é resultado de cada vez após atualizações subseqüentes a uma lista.
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;