Примечание: Этот вопрос похож на существующий вопрос без ответа ( CAML OrderBy для SharePoint Событие повторяющегося календаря ).
Как я могу использовать веб-сервис Lists.asmx для извлечения повторяющихся событий, которые происходят сегодня или позже?
Я предоставляю параметр <CalendarDate>2019-06-25T15:55:04.108Z</CalendarDate>
при отправке запроса в веб-службу /_vti_bin/Lists.asmx
, но я все еще получаю события из прошлого (как показано на скриншоте ниже)!
Это ответ XML (скриншот). Обратите внимание, что даты события до сегодня, даже если «CalendarDate» задано как «2019-06-25»:
Это полезная нагрузка XML, отправленная с запросом:
<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>
<soap:Body>
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
<listName>{ my list GUID }</listName>
<query>
<Query>
<OrderBy>
<FieldRef Ascending='TRUE' Name='EventDate' />
</OrderBy>
<Where>
<And>
<Eq>
<FieldRef Name="fRecurrence" />
<Value Type="Boolean">1</Value>
</Eq>
<DateRangesOverlap>
<FieldRef Name="EventDate" />
<FieldRef Name="EndDate" />
<FieldRef Name="RecurrenceID" />
<Value Type='DateTime'>
<Year/>
</Value>
</DateRangesOverlap>
</And>
</Where>
</Query>
</query>
<viewFields>
<ViewFields>
<FieldRef Name="Category" />
<FieldRef Name="Location" />
</ViewFields>
</viewFields>
<queryOptions>
<QueryOptions>
<ViewAttributes Scope="RecursiveAll" />
<RecurrencePatternXMLVersion>v3</RecurrencePatternXMLVersion>
<DateInUtc>TRUE</DateInUtc>
<ExpandRecurrence>TRUE</ExpandRecurrence>
<CalendarDate>2019-06-25T15:55:04.108Z</CalendarDate>
<RecurrenceOrderBy>TRUE</RecurrenceOrderBy>
</QueryOptions>
</queryOptions>
<rowLimit>20</rowLimit>
</GetListItems>
</soap:Body>
</soap:Envelope>
Редактировать: Ниже приведен пример события, которое не возвращается запросом выше.