SharePoint Lists.asmx:查询返回“已删除”日历项?

时间:2009-06-04 12:58:48

标签: web-services sharepoint caml

在针对sharepoint list.asmx服务运行caml查询时,我有一个奇怪的行为,GetListItems方法也返回已删除项;

found item: test
found item: already done
found item: recurring
found item: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: todays event 15-16 //<- NOT DELETED YET

这是怎么回事?我是否需要对caml查询应用特殊过滤器?我目前正在查询如下;

<Query>
  <OrderBy>
     <FieldRef Ascending='TRUE' Name='EventDate' />
  </OrderBy>
  <Where>
     <Eq>
        <FieldRef Name='EventDate' />
        <Value Type='DateTime'><Today /></Value>
     </Eq>
  </Where>
</Query>

到目前为止我尝试了什么; 1.清除回收站中的所有物品 2.在sharepoint webserver上执行iisreset

请注意;我在VMWare Workstation环境中运行。

1 个答案:

答案 0 :(得分:7)

根据日历的经验,他们有一种处理重复事件的非常奇怪(但逻辑)的方式。首先,日历基本上只是一个专门的列表(与SP中的所有内容一样),并且具有奇特的视图控制。

将项目添加到日历后,会将单个项目添加到列表中。添加定期事件时,SP不会在列表中添加无限数量的项目,它会添加一个特殊的“重复”项目,如您所注意到的那样。然后,如果您删除一些单独的重复事件(即,每周会议,但在下周二取消)SP会在列表中添加一个特殊的“已删除事件”项。这些项目实际上并没有被删除,因为它们存在并且不再存在,它们只是重复事件的例外。因此,当您在列表视图中查看日历时,它们会被过滤掉,但它们本身就是“真正的”个人SP列表项。

我希望这是有道理的。