CAML查询以获取SharePoint日历事件

时间:2013-01-30 17:00:26

标签: php sharepoint soap caml

我正在尝试使用CAML查询获取未来12个月内特定视图的所有日历事件。我正在使用PHP SoapClient来执行此操作。这是我的代码;

$query = "<Query>
    <Where>
        <DateRangesOverlap>
            <FieldRef Name='EventDate' />
            <FieldRef Name='EndDate' /><FieldRef Name='RecurrenceID' />
            <Value Type='DateTime'><Year /></Value>
        </DateRangesOverlap>
    </Where>
    <OrderBy><FieldRef Name='EventDate' /></OrderBy>
</Query>";

$query_options = "<QueryOptions>
    <RecurrencePatternXMLVersion>v3</RecurrencePatternXMLVersion>
    <ExpandRecurrence>TRUE</ExpandRecurrence>
    <CalendarDate>2013-01-01T12:00:00Z</CalendarDate>
</QueryOptions>";

$soapClient = new SoapClient($wsdl, $authParams);
$params = array('listName' => $list_name, 'viewName' => $view_name, 'rowLimit' => $row_limit, "query" => $query, "query_options" => $query_options);

$rawXMLresponse = $soapClient->GetListItems($params)->GetListItemsResult->any;

结果将从正确的视图中提取,但它将从列表开头(2012年9月)到最后一个事件(2013年7月)返回所有事件。无论我是否更改'CalendarDate'或将DateTime值更改为'Month',它仍然会给我相同的结果。当然这个查询应该只获取DateTime期间的事件吗?

非常感谢任何帮助!

0 个答案:

没有答案