Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Работа с пользовательскими свойствами в EWS для интеграции с Exchange 2010: создание и чтение свойств встреч

Delphi , Компоненты и Классы , Свойства и События

Приветствую! В данной статье мы рассмотрим процесс создания и чтения пользовательских свойств в Microsoft Exchange Server 2010 с использованием Exchange Web Services (EWS). Это может быть полезно для разработчиков, работающих над интеграцией собственных приложений с сервисами Exchange, например, для создания встреч с настраиваемыми полями.

Введение в EWS и пользовательские свойства

EWS предоставляет программный интерфейс для доступа к данным в Exchange. Пользовательские свойства позволяют расширить функциональность объектов в Exchange, добавляя дополнительные поля, которые не предусмотрены стандартными.

Создание пользовательского свойства встречи

Для создания пользовательского свойства встречи с помощью EWS, можно использовать следующий код на языке Object Pascal (Delphi):

Dim customField As New ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "MyCustomField", MapiPropertyType.String)
appointment.SetExtendedProperty(customField, "CustomFieldValue")

Этот код создаст новое свойство в корневой папке, а не в самой встрече, что может вызвать проблемы при попытке доступа к нему из Outlook Add-in.

Проблема с чтением пользовательского свойства

Проблема заключается в том, что созданное свойство доступно в "User-defined field in folder", но не в "User-defined field in this item". Это означает, что при попытке чтения свойства из Outlook Add-in, используя UserProperties.Find("MyCustomField"), свойство не будет найдено.

Решение проблемы

Подтвержденное решение заключается в использовании PropertyAccessor вместо UserProperties, чтобы получить доступ к расширенным свойствам, созданным через EWS. Вот пример кода на Delphi, который демонстрирует, как это можно сделать:

const
   GUID_PS_PUBLIC_STRINGS = '{00020329-0000-0000-C000-000000000046}';
   cPublicStringNameSpace = 'http://schemas.microsoft.com/mapi/string/' + GUID_PS_PUBLIC_STRINGS + '/';
var
   lPropertyAccessor: OleVariant;
   lSchemaName, lValue: String;
begin
   lPropertyAccessor := AAppointmentItem.PropertyAccessor;
   lSchemaName := cPublicStringNameSpace + 'MyCustomField';
   try
      lValue := lPropertyAccessor.GetProperty(lSchemaName);
      // Здесь можно выполнить действия с полученным значением свойства
   except
   end;
end;

Также можно использовать метод GetProperties для одновременного получения нескольких свойств:

lPropertyAccessor := AAppointmentItem.PropertyAccessor;
lSchemas := VarArrayOf([cPublicStringNameSpace + 'Property1', cPublicStringNameSpace + 'Property2', ...]);
try
   lValues := lPropertyAccessor.GetProperties(lSchemas);
   // Здесь можно обработать полученные значения
except
end;

Заключение

При работе с пользовательскими свойствами в EWS важно понимать различия между свойствами папки и свойствами самого элемента. Использование PropertyAccessor позволяет корректно читать расширенные свойства, созданные через EWS, и использовать их в Outlook Add-in. Надеемся, что эта статья помогла вам лучше понять процесс создания и чтения пользовательских свойств в EWS.

Создано по материалам из источника по ссылке.

Статья посвящена созданию и чтению пользовательских свойств в Microsoft Exchange Server 2010 с использованием Exchange Web Services (EWS) для интеграции с сервисами Exchange и работы с пользовательскими свойствами встреч.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Свойства и События ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 09:47:31/0.0035378932952881/0