Календарь - применить фильтр поиска по встречам (тема) - PullRequest
0 голосов
/ 29 мая 2019

Я использую 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);

У кого-нибудь есть идеи, как это исправить?

Спасибо и всего наилучшего

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

После использования 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

0 голосов
/ 29 мая 2019

Имейте в виду, что экземпляры повторяющейся встречи (даже если они являются исключениями) физически не существуют, поэтому они не могут быть возвращены FindItems ().

То, что вам, вероятно, нужно, это Операция GetUserAvailability (предоставляется методом ExchangeService.GetUserAvailability ) в подробном режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...