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

Сложный

На основе механизма синхронизации Sync Engine в Creatio реализована синхронизация задач. Под синхронизацией задач необходимо понимать синхронизацию задач Microsoft Exchange с активностями Creatio и наоборот. Синхронизация задач выполняется по протоколу EWS (Exchange Web Services). Протокол EWS описан в официальной документации Microsoft. Подробнее о настройке Microsoft Exchange читайте в статье Настроить Microsoft Exchange и Microsoft 365. Инструкция по синхронизации задач описана в статье Синхронизировать расписание Creatio с календарями Microsoft Exchange и Microsoft 365.

Под задачами необходимо понимать задачи Microsoft Exchange. Под активностями необходимо понимать активности Creatio.

Выполнить синхронизацию задач 

Чтобы выполнить синхронизацию задач, выберите папки Microsoft Exchange с задачами, которые планируется синхронизировать.

Действия, которые выполняются при синхронизации задач:

  1. Применение изменений из Microsoft Exchange.
  2. Применение изменений из Creatio.
  3. Создание новых задач из Creatio в Microsoft Exchange.

Применение изменений из Microsoft Exchange 

Типы задач, которые можно синхронизировать:

  • Измененные задачи. Т. е. задачи, которые изменены после даты последней синхронизации. Для этих задач выполняется поиск соответствующих активностей. Применяются актуальные изменения.
  • Новые задачи. Т. е. задачи, которые не были синхронизированы ранее.

Применение изменений из Creatio 

Типы активностей, которые можно синхронизировать:

  • Активности, которые в метаданных синхронизации отмечены, как задача Microsoft Exchange.
  • Активности автором которых является текущий пользователь.
  • Активности, у которых дата последнего изменения больше, чем дата последней синхронизации.
  • Новые активности.
  • Групповые активности.

Типы фильтров, которые устанавливаются при выборе новых активностей Creatio:

  • Общие фильтры.

    • Поле Тип (Type) активности не равно значению "E-mail".
    • У активности не установлен признак Отображать в расписании (Show in calendar).
  • Пользовательские фильтры.

Классы синхронизации задач 

Классы, которые реализуют логику работы синхронизации задач:

  • Класс RemoteProvider, который представлен классом ExchangeTaskSyncProvider. Класс ExchangeTaskSyncProvider — провайдер для работы с внешним хранилищем. Реализует логику по выбору данных и сохранению изменений в Creatio и Microsoft Exchange. Подробнее о классе RemoteProvider читайте в статье Механизм синхронизации Sync Engine.
  • Класс RemoteItem, который реализует интерфейс IRemoteItem. Интерфейс предоставляет экземпляр элемента синхронизации (в нашем случае — задачу Microsoft Exchange). Подробнее о классе RemoteItem читайте в статье Механизм синхронизации Sync Engine. Класс Task реализует интерфейс IRemoteItem. В свою очередь интерфейс реализует логику заполнения данных в соответствующих сущностях Creatio и Microsoft Exchange.

Схема иерархии класса RemoteProvider для синхронизации задач представлена на рисунке ниже.

Схема иерархии класса RemoteItem для синхронизации задач представлена на рисунке ниже.

Соответствие свойств класса Task, который представляет элемент задачи Microsoft Exchange, и полей объекта Creatio Activity содержится в таблице ниже. Класс Task описан в официальной документации Microsoft.

Соответствие свойств класса Task и полей объекта Creatio Activity
Свойство класса Task
Поле объекта Activity
Subject
Title
StartDate
StartDate
В зависимости от статуса задачи, CompleteDate или DueDate
DueDate
Importance
Priority
Status
Status
IsReminderSet
RemindToOwner
ReminderDueBy
RemindToOwnerDate
TextBody
Notes

Свойства класса Task, которые характеризуют дату окончания задачи Microsoft Exchange:

  • DueDate — дата завершения. Используется для незавершенных задач.
  • CompleteDate — дата выполнения. Используется для завершенных задач.

Особенности свойств значений дат класса Task:

  • В значениях текущих свойств отсутствуют значения времени. Если изменить задачу в Microsoft Exchange, то после ее синхронизации в Creatio применится дата из задачи Microsoft Exchange, а время — из активности Creatio.
  • Несмотря на то, что дата окончания в классе Task представлена двумя свойствами, актуальной датой является только одна. Это зависит от статуса задачи. В качестве значения даты завершения задачи используется текущая дата. После завершения задачи используется дата выполнения.
  • Дата начала и дата завершения — необязательные для заполнения свойства задачи Microsoft Exchange. При отсутствии значения даты в качестве значения свойства используется текущая дата. Это может привести к конфликтам, поскольку эти поля являются обязательными для заполнения в активности Creatio. При этом значение даты начала должно быть меньше значения даты завершения.