日历-对约会应用搜索过滤器(主题)

时间:2019-05-29 14:00:59

标签: exchangewebservices

我正在使用EWS Java api 2.0来读取Calendar邮箱上的约会。 它工作正常,但我的问题是按主题描述过滤约会,但我没有成功。 目前,我正在使用CalendarView检索约会, 像这样的东西:

CalendarFolder cf = CalendarFolder.bind(service, WellKnownFolderName.Calendar);
CalendarView view = new CalendarView(startDate, endDate);
FindItemsResults<Appointment> findResults3 = cf.findAppointments(view);

我知道Item类提供了一种我可以应用搜索过滤器的方法,但是它确实返回了重复序列的出现。

类似的东西:

ItemView itemView = new ItemView(50);
SearchFilter searchFilter = new SearchFilter.ContainsSubstring(ItemSchema.Subject, "OK");
FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Calendar, searchFilter, itemView);

有人知道如何解决吗?

感谢和问候

2 个答案:

答案 0 :(得分:0)

请记住,定期约会的实例(即使它们是例外)实际上并不存在,因此FindItems()不可能返回它们。

您可能想要的是“详细模式”下的GetUserAvailability operation(由ExchangeService.GetUserAvailability方法公开)。

答案 1 :(得分:0)

使用FindItems之后,您将获得所有重复出现的母版,它们代表整个系列。从大师那里,您可以获取事件和异常:

Appointment occurrenceOrException = Appointment.BindToOccurrence(service, new ItemId(recurringMasterId), index);

使用上面的内容,您可以按索引获取出现/异常。 请注意,索引从1开始,当索引超出范围时将引发异常。

这可能会有所帮助:https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/dd633700%28v%3dexchg.80%29