Outlook Расширенный поиск по свойству GlobalAppointmentID
Хорошо, поэтому мне нужна помощь здесь. Я работаю с Outlook 2007 PIA (надстройка Outlook) и использую расширенный поиск. Я пытаюсь написать фильтр DASL для свойства AppointmentItem GlobalAppointmentID, но не могу найти правильное пространство имен для использования в фильтре.
Я пробовал urn:schemas:calendar:uid, и я не получаю никаких результатов при поиске по первой встрече в списке календаря по умолчанию. Документация MSDN гласит, что это свойство mapi, но я не знаком с mapi, поэтому в настоящий момент я не знаю, как найти его в msdn таким образом (я пытался и в итоге оказался над головой).
Я знаю, что есть обходной путь, чтобы перейти в папку по умолчанию и выполнить итерацию по коллекции, чтобы найти нужный мне объект, но я считаю это слишком неэффективным (сейчас я его использую, но хочу его улучшить).
Любая помощь будет оценена!
2 ответа
ООМ не позволит вам искать GlobalAppointmentId
(или любой другой PT_BINARY
собственность) в Items.Find
/Найти следующий/Restrict
, Единственный обходной путь - это либо пройти по всему элементу в папке "Календарь" (крайне неэффективно), либо выполнить поиск с использованием Extended MAPI (только для C++ или Delphi) или Redemption (любой язык, его версия). RDOFolder
, ПредметыFind
позволяет искать на GlobalAppointmentId
или любое другое двоичное свойство)
Не каждое свойство может быть использовано в строке фильтра для Items.Restrict
, Table.Restrict
или же Application.AdvancedSearch
методы. Как для запросов Jet, так и для запросов DASL нельзя ограничивать двоичное свойство, такое как EntryID
или же GlobalAppointmentID
, Также вы не можете ограничивать или искать вычисленные свойства.
В любом случае, вам может пригодиться Глава 11: Поиск данных Outlook.