注意: 。该问题类似于现有的未回答问题(CAML OrderBy for SharePoint Recurring Calendar Event)。
如何使用 Lists.asmx Web服务检索今天或以后发生的重复发生的事件?
在将请求发送到<CalendarDate>2019-06-25T15:55:04.108Z</CalendarDate>
Web服务时,我提供了/_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>
编辑:以下是上面的查询未返回的事件的示例。
答案 0 :(得分:1)
Year
不支持CalendarDate
属性-它返回从当前日期起一年内发生的先前事件,以及从当前日期起一年内发生的未来事件。
在<Value Type='DateTime'><Now /></Value>
中使用DateRangesOverlap
并删除CalendarDate
以检索今天或以后发生的重复发生的事件