Creatio development guide
Это документация Creatio версии 7.9.0. Мы рекомендуем использовать новую версию документации.

Синхронизация контактов с MSExchange

Glossary Item Box

Общее описание

На базе механизма синхронизации Sync Engine в конфигурации реализована интеграция с различными сущностями MS Exchange по протоколу EWS (Exchange Web Service). В данной статье описана синхронизация контактов bpm'online с контактами MS Exchange. Алгоритм синхронизации контактов не отличается от описанного в статье по синхронизации Sync Engine и происходит в три этапа: 

  1. Получение изменений из MS Exchange, их применение;
  2. Получение изменений из bpm'online, их применение;
  3. Создание новых контактов из bpm'online в MS Exchange.

Классы, реализующие интеграцию

Как описано в статье "Синхронизация bpm'online с внешними хранилищами данных", для того, чтобы реализовать интеграцию с использованием данного механизма, необходим класс, реализующий логику работы с внешним хранилищем, — наследник RemoteProvider (Рис. 1) и класс, реализующий интерфейс IRemoteItem (Рис. 2), который представляет один экземпляр элемента синхронизации (в данном случае — контакт MS Exchange).

Рис. 1. — Схема иерархии RemoteProvider

Рис. 2. — Схема иерархии RemoteItem

Для синхронизации контактов также используются следующие классы:

  • Класс ExchangeContactSyncProvider является провайдером для работы с внешним хранилищем MS Exchange, в нем реализована логика по выбору данных и сохранению изменений в bpm'online и MS Exchange.
  • Класс ExchangeContact реализует интерфейс IRemoteItem. В нем реализована логика заполнения данных в соответствующих системах.
  • Класс ExchangeAddressDetailsSynchronizer содержит утилитные методы для преобразования данных об адресах контактов.
  • Класс ExchangeEmailAddressDetailsSynchronizer содержит утилитные методы для преобразования данных об email-адресах контактов.
  • Класс ExchangePhoneNumbersDetailsSynchronizer содержит утилитные методы для преобразования данных о телефонах контактов.

Логика заполнения деталей вынесена в отдельные классы, так как существуют значительные отличия в форматах хранения данных в bpm'online и MS Exchange, и требуется дополнительное преобразование.

Синхронизируемые данные

Соответствие объектов bpm'online и полей класса Contact MS Exchange отображено в таблице 1.

Табл. 1. — Соответствие объектов bpm'online и полей класса Contact MS Exchange

Объект bpm'online Поле объекта Поле класса Contact MS Exchange
Contact Name DisplayName
Surname Surname
GivenName GivenName
MiddleName MiddleName
Account CompanyName
JobTitle JobTitle
Department Department
BirthDate Birthday
SalutationType TitleTag
Gender GenderTag
ContactCommunication Number Значение в коллекции PhoneNumbers
CommunitactionType Ключ для значения в коллекции PhoneNumbers
ContactAddresses City Поле City элемента коллекции PhysicalAddresses
Country Поле CountryOrRegion элемента коллекции PhysicalAddresses
Region Поле State элемента коллекции PhysicalAddresses
Address Поле Street элемента коллекции PhysicalAddresses
Zip Поле PostalCode элемента коллекции PhysicalAddresses
AddressType Ключ для значения в коллекции PhysicalAddresses

Соответствие типов средств связи представлено в таблице 2.

Табл. 2. — Соответствие типов средств связи bpm'online и MS Exchange

Тип средства связи bpm'online Тип средства связи MS Exchange
Email EmailAddress1, EmailAddress2, EmailAddress3
WorkPhone BusinessPhone, BusinessPhone2
HomePhone HomePhone
MobilePhone MobilePhone

Соответствие типов адресов представлено в таблице 3.

Табл. 3. — Соответствие типов адресов bpm'online и MS Exchange

Тип адреса bpm'online Тип адреса MS Exchange
HomeAddress Home
BusinessAddress Business

Логика выбора данных для синхронизации

Для выбора изменений в списке контактов из отобранных для синхронизации папок MS Exchange используется следующий набор фильтров: выбирается контакт MS Exchange, который был изменен после даты последней синхронизации контактов, или контакт MS Exchange, который не был отмечен, как ранее синхронизированный. Для контактов, которые были изменены, находится соответствующий контакт в bpm'online. Самые актуальные изменения применяются в соответствующей системе.

При выборе измененных контактов bpm'online выбираются контакты:

  • автором которых является текущий пользователь;
  • дата последнего изменения которых больше чем дата последней синхронизации;
  • контакт не использовался в первом этапе синхронизации.

На правила выбора новых контактов bpm'online, помимо стандартного фильтра по автору и фильтра отсутствия метаданных синхронизации, влияют пользовательские настройки. Доступно три варианта настройки:

  1. Синхронизировать контакты сотрудников. При выборе этой настройки к запросу будет добавлен фильтр по колонке "Тип контакта", и синхронизированы будут те контакты, у которых указан тип "Сотрудник".
  2. Синхронизировать контакты клиентов. При выборе этой настройки к запросу будет добавлен фильтр по колонке "Тип контакта", и синхронизированы будут те контакты, у которых указан тип "Клиент".
  3. Синхронизировать контакты из определенных групп. При выборе этой настройки к запросу будут добавлены фильтры выбранных групп контактов.

Дополнительные возможности

Возможность связать контакт с контрагентом

Если у контакта MS Exchange указано значение в поле CompanyName, то при сохранении контакта в bpm'online существует три возможных варианта заполнения справочного поля [Контрагент]:

  1. Всегда связывать. Если указан несуществующий контрагент, он будет создан. Этот вариант используется по умолчанию.
  2. Связывать, если контрагент существует. Аналогичен предыдущему, но несуществующие контрагенты не создаются.
  3. Никогда не связывать. Поле [Контрагент] не будет заполняться при синхронизации.

Возможность использовать расширенные ключи для контактов во внешнем хранилище

Ввиду особенностей работы MS Exchange возможна ситуация, когда при большом количестве контактов MS Exchange часть из них получит одинаковые идентификаторы, и, как следствие, синхронизация может некорректно определить соответствующий контакт в bpm'online. Для обхода подобной ситуации реализована функциональность расширенных внешних ключей, которую можно включить при помощи настройки [Использовать комбинированные идентификаторы для синхронизируемых контактов MS Exchange]. Код настройки — UseComplexExchangeContactId. После ее включения может понадобиться повторная синхронизация.

 

© Terrasoft 2002-2017.

Был ли данный материал полезен?

Как можно улучшить эту статью?