Я использую EWS Java API 2.0 для чтения встреч в почтовом ящике календаря. Он отлично работает, но моя проблема заключается в том, чтобы фильтровать встречи по описанию темы, чего мне не удается. На данный момент я использую 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);
Кто-нибудь знает, как это исправить?
Спасибо и привет
Имейте в виду, что экземпляры повторяющихся встреч (даже если они являются исключениями) физически не существуют, поэтому они не могут быть возвращены функцией FindItems().
Что вам, вероятно, нужно, так это Операция GetUserAvailability (выставленный методом ExchangeService.GetUserAvailability) в подробном режиме.
После использования 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
Спасибо за ответ, и я прошу прощения за поздний ответ, мне пришлось отдать приоритет другому проекту. Ваш ответ был очень полезен, однако мне нужно будет найти способ адаптировать эту функцию к моему существующему проекту, когда мне придется иметь дело со сценарием, в котором будут повторяющиеся встречи, когда дата начала находится в пределах периода, который я фильтрую, но повторяющиеся master выходит за пределы допустимого диапазона, тогда фильтр работает, но это будет предметом другой темы, спасибо.
Спасибо, добавил основные части ответа.