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

Синхронизация задач с MS Exchange

Glossary Item Box

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

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

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

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

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

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

Класс ExchangeTaskSyncProvider является провайдером для работы с внешним хранилищем MS Exchange, в нем реализована логика по выбору данных и сохранению изменений в Creatio и MS Exchange. Класс ExchangeTask реализует интерфейс IRemoteItem. В нем реализована логика заполнения данных в соответствующих системах.

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

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

Соответствие объектов Creatio и полей класса ExchangeTask отображено в таблице 1.

Табл. 1. — Соответствие объектов Creatio и полей класса ExchangeTask

Объект Creatio Поле объекта Поле ExchangeTask
Activity Title Subject
StartDate StartDate
DueDate CompleteDate или DueDate в зависимости от того, завершена задача или нет.
Priority Importance
Status Status
RemindToOwner IsRemindSet
RemindToOwnerDate ReminderDueBy
Notes Body.Text

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

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

При выборе измененных активностей Creatio выбираются активности:

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

При выборе новых активностей Creatio, устанавливается набор общих фильтров и фильтры, настраиваемые пользователем. Основными фильтрами являются: 

  1. Тип активности не равен "email".
  2. У активности не установлен признак [Отображать в расписании].

Пользователь может указать группы активностей, которые будут экспортироваться из Creatio.

Дополнительно

Заполнение полей [Дата начала], [Дата завершения]

В объекте ExchangeTask есть несколько особенностей при работе с датами начала и завершения:

  • В этих полях хранятся значения без времени. При изменении задачи в MS Exchange после синхронизации в Creatio применится дата из задачи MS Exchange, а время — из активности Creatio.
  • Для даты завершения в ExchangeTask есть два поля — дата завершения (due date) и дата выполнения (complete date). В зависимости от статуса задачи, актуальной является одна из них — для не завершенных используется дата завершения, для завершенных дата выполнения. Дата выполнения устанавливается текущей датой, пока задача не будет завершена.
  • Дата начала и дата завершения — поля, необязательные для заполнения в MS Exchange. Если какое-то из них не установлено, используется текущая дата. Из-за этого могут возникать конфликты, так как в Creatio и дата начала, и дата завершения обязательны для заполнения, и дата начала должна быть меньше даты завершения.

 

© Terrasoft 2002-2020.

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

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