Lists.GetListItemChangesSinceToken-Methode
Gibt Änderungen an der Liste seit dem Datum und Uhrzeit im Token angegeben.
Namespace: WebSvcLists
Assembly: STSSOAP (in STSSOAP.dll)
Syntax
'Declaration
<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
'Usage
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
)
Parameter
listName
Typ: System.StringEine Zeichenfolge, die den Titel oder die GUID für die Liste enthält. Beim Abfragen der UserInfo-Tabelle enthält die Zeichenfolge UserInfo. Verwenden die GUID-Ergebnisse in eine bessere Leistung.
viewName
Typ: System.StringEine Zeichenfolge mit der GUID für die Ansicht die Ansicht, mit der für die durch den Parameter query, viewFieldsund rowLimit dargestellte Ansicht Standardattribute bestimmt. Wenn dieses Argument nicht angegeben wird, wird davon ausgegangen, dass die Standardansicht. Wenn es angegeben wird, überschreibt den Wert des Parameters query, viewFieldsoder rowLimit die entsprechende Einstellung in der Ansicht. Beispielsweise werden Wenn vom viewFields -Parameter angegebene Ansicht eine Zeile Grenze von 100 Zeilen, aber der Parameter rowLimit 1000 enthält, klicken Sie dann 1.000 Zeilen in der Antwort zurückgegeben.
query
Typ: System.Xml.XmlNodeEine Query -Element mit der Abfrage, der bestimmt, welche Datensätze zurückgegeben und in Was sind Reihenfolge und, kann ein System.Xml.XmlNode -Objekt, wie im folgenden Beispiel zugewiesen werden.
viewFields
Typ: System.Xml.XmlNodeEin ViewFields -Element, das gibt an, welche Felder in der Abfrage und in welcher Reihenfolge zurückgegeben und ein System.Xml.XmlNode -Objekt, wie im folgenden Beispiel zugewiesen werden können.
rowLimit
Typ: System.StringEine Zeichenfolge, die Anzahl der Elemente oder Zeilen, die auf einer Seite angezeigt werden soll, vor Beginn der Auslagerungsdatei angibt. Wenn angegeben, überschreibt den Wert dieses Parameters den Grenzwert der Zeile in der durch den viewName -Parameter angegebenen Ansicht oder den Grenzwert der Zeile in der Standardansicht für die Liste.
queryOptions
Typ: System.Xml.XmlNodeEin XML-Fragment in der folgenden Form, das separate Knoten für die verschiedenen Eigenschaften des SPQuery -Objekts enthält, und ein System.Xml.XmlNode -Objekt zugewiesen werden können.
changeToken
Typ: 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 ein Nullverweis (Nothing in Visual Basic) is passed, all items in the list are returned.
contains
Typ: System.Xml.XmlNodeEin Contains -Element, die benutzerdefinierte Filterung für die Abfrage definiert und ein System.Xml.XmlNode -Objekt, wie im folgenden Beispiel zugewiesen werden können.
Rückgabewert
Typ: System.Xml.XmlNode
Ein XML-Fragment in der folgenden Form, die die letzte zurückgibt und der Element-Änderungen ändern und ein System.Xml.XmlNode -Objekt zugewiesen werden können:
<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>
Hinweise
In der folgenden Tabelle sind die Rückgabeparameter beschrieben.
Eigenschaft |
Definition |
---|---|
MinTimeBetweenSyncs |
Die minimale Zeitspanne zwischen vom Benutzer initiierte oder automatische Synchronisierung darstellt. Der Wert stellt eine Zeit in Minuten. Hinweis Clients sind dieser Wert einzuhalten, selbst wenn der Benutzer die Synchronisierung manuell initiiert. D. h., wenn dies auf 5 Minuten festgelegt ist, sollte nur eine Anforderung pro 5 Minuten senden Clients, auch wenn der Benutzer wiederholt klickt "Senden/Empfangen". |
RecommendedTimeBetweenSyncs |
Die empfohlene Mindest-Zeit zwischen Synchronisierungen darstellt. Dies sollte speziell für automatische Synchronisierungen eingehalten werden. Clients sollten niemals automatisch häufiger als dieser synchronisieren. Vom Benutzer initiierte Synchronisierungen können dieses Intervall außer Kraft setzen. |
MaxBulkDocumentSyncSize |
Die Gesamtgröße der Inhalte an den Client synchronisiert werden. Der Standardwert beträgt 500 MB. Sie erhalten die URL und die Metadaten für jedes Dokument, wenn Sie rufen Sie GetListItemChangesSinceToken, aber Sie eine HTTP GET, um den Inhalt des aktuellen Dokuments abrufen müssen. Wenn dieser Wert auf hohe kann zu Leistungseinbußen führen. |
AlternateUrls |
Alternative URLs werden in der folgenden Zonenreihenfolge, durch Kommas getrennt, aufgeführt: Intranet, Standard, Extranet, Internet, Benutzerdefiniert |
EffectiveBasePermissions |
Die Berechtigungen für die Liste von SPList.EffectiveBasePermissions.ToString()zurückgegeben. |
Beispiele
Im folgenden Codebeispiel wird mithilfe die GetListItemChangesSinceToken -Methode an das aktuelle Änderungstoken, das sich jeweils nach späteren Aktualisierungen zu einer Liste ergibt.
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;