Доступ к настраиваемым полям в форме Outlook и веб-служб Exhange

У нас есть приложение, состоящее из двух частей, и мы хотим, чтобы обе могли иметь доступ к одним и тем же полям элементов Outlook. Под полем я подразумеваю любой тип данных типа "ключ-значение", которые могут храниться в элементах, потому что, по-видимому, их несколько видов. Итак, две части приложения:

  • Java-приложение, использующее официальную библиотеку EWS, предоставленную MS
  • форма Outlook с использованием VBScript

Мы можем получить доступ к элементам Outlook из приложения Java и даже хранить и извлекать так называемые расширенные свойства. Но только те, которые были сохранены через тот же API. Насколько я знаю, код для этого был бы очень похож на C# тоже.

ExtendedPropertyCollection epc = appointment.getExtendedProperties();
for (ExtendedProperty ep : epc) {
    // these do not print anything, epc.getCount() returns 0
    System.out.println(" extendedpropC: " + ep.getClass());
    System.out.println(" extendedpropV: " + ep.getValue());
}

В форме Outlook мы можем хранить значения текстовых полей в полях, сопоставляя текстовые поля с полями, как это описано здесь. Поэтому после сохранения и повторного открытия элемента пользовательские текстовые поля заполняются значениями из полей. Но при попытке доступа к этим значениям через EWS их просто нет, и наоборот.

Так есть ли несколько "слотов" для этих расширенных свойств для нескольких API / языков?

Или, чтобы расширить вопрос, какими методами /API вы бы использовали данные типа ключ-значение в элементах Outlook, которые должны быть каким-то образом доступны из Java?

1 ответ

Вы можете получить доступ к любому свойству MAPI, используя AppointmentItem.PropertyAccessor.GetProperty.

Вы можете увидеть свойства и их имена DASL (которые вам понадобятся при вызове GetProperty) в OutlookSpy: выберите встречу, нажмите кнопку IMessage, выберите рассматриваемое свойство, посмотрите на поле редактирования DASL.

Другие вопросы по тегам