是否可以使用通过Lists.aspx公开的Web服务从Sharepoint的日历中获取事件列表(扩展重复事件)?
如果您使用C#或VB,这显然是可能的,如此处所述,使用如下代码段:
SPQuery query = new SPQuery();
query.ExpandRecurrence = true;
query.Query = "<Where><DateRangesOverlap><FieldRef Name=\"EventDate\" /><FieldRef Name=\"EndDate\" /><FieldRef Name=\"RecurrenceID\" /><Value Type=\"DateTime\"><Month /></Value></DateRangesOverlap></Where>";
Run Code Online (Sandbox Code Playgroud)
我试图通过使用此查询的cURL使用纯XML执行相同的操作:
<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>{my guid goes here}</listName>
<query>
<Query xmlns="">
<Where>
<DateRangesOverlap>
<FieldRef Name="EventDate" />
<FieldRef Name="EndDate" />
<FieldRef Name="RecurrenceID" />
<Value Type="DateTime"><Month/></Value>
</DateRangesOverlap>
</Where>
</Query>
</query>
<queryOptions>
<QueryOptions>
<ExpandRecurrence>TRUE</ExpandRecurrence>
</QueryOptions>
</queryOptions>
Run Code Online (Sandbox Code Playgroud)
这种方式有效 - 它获取所有列表项,但不会扩展重复项.关键似乎是ExpandRecurrence属性.令人惊讶的是,除了几篇博文之外,谷歌似乎没有太多话要说.在网上搜索,我已经阅读了一些注释,表明ExpandRecurrence属性不起作用,但是其他人说它工作正常,我读过的任何内容都没有让我感到震惊.
有没有人试过这个并且在没有使用C#或VB的情况下让它工作 - 只是直接的XML?