Доступ к настраиваемым полям в форме 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.