我正在使用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);
有人知道如何解决吗?
感谢和问候
答案 0 :(得分:0)
请记住,定期约会的实例(即使它们是例外)实际上并不存在,因此FindItems()不可能返回它们。
您可能想要的是“详细模式”下的GetUserAvailability operation(由ExchangeService.GetUserAvailability方法公开)。
答案 1 :(得分:0)
使用FindItems之后,您将获得所有重复出现的母版,它们代表整个系列。从大师那里,您可以获取事件和异常:
Appointment occurrenceOrException = Appointment.BindToOccurrence(service, new ItemId(recurringMasterId), index);
使用上面的内容,您可以按索引获取出现/异常。 请注意,索引从1开始,当索引超出范围时将引发异常。