Synchronizing tasks with MS Exchange
Glossary Item Box
General information
Integration with various entities of MS Exchange via EWS protocol (Exchange Web Services) is supported by the Sync Engine synchronization mechanism. This article describes synchronization of tasks between Creatio and MS Exchange. The task synchronization algorithm is no different from that described in the "Creatio synchronization with external storages" article. The process runs in three stages:
- Retrieving changes from MS Exchange and applying them;
- Retrieving changes from Creatio and applying them
- Creating new tasks from Creatio in MS Exchange.
Integration classes
As described in the "Creatio synchronization with external storages" article, in order to implement an integration using this mechanism, you need a class that implements the logic of the external storage (an heir of the RemoteProvider class). The hierarchy of provider classes is shown in figure 1. You also need a class that implements the IRemoteItem interface, which represents a single instance of a synchronization item (in this case — the MS Exchange task). The RemoteItem hierarchy is shown in figure 2.
Fig. 1. RemoreProvider hierarchy schema
The ExchangeTaskSyncProvider class is the service provider for the MS Exchange external storage. This class implements the logic of selecting data and saving changes in Creatio and MS Exchange. The ExchangeTask class implements the IRemoteItem interface. The logic of filling in data in the corresponding systems is implemented in it.
Fig. 2. RemoteItem hierarchy schema
Synchronized data
The correspondence of Creatio objects to the ExchangeTask class fileds is shown on table 1.
Table 1. The correspondence of Creatio objects to the ExchangeTask class fileds
Creatio object | Object field | ExchangeTask |
---|---|---|
Activity | Title | Subject |
StartDate | StartDate | |
DueDate | CompleteDate or DueDate depending on whether a task is finished or not. | |
Priority | Importance | |
Status | Status | |
RemindToOwner | IsRemindSet | |
RemindToOwnerDate | ReminderDueBy | |
Notes | Body.Text |
Logic of selecting data for synchronization
To select changes to the list of tasks selected for MS Exchange folder synchronization, use the following terms: select tasks for MS Exchange, which were modified after the last task synchronization or an MS Exchange task, which was not marked as synced. The MS Exchange task which were modified have corresponding activities in Creatio. The updated changes are applied in the corresponding system.
When you select modified Creatio activities, select the following:
- activities that are recorded in the metadata synchronization as MS Exchange tasks
- activities that have the current user as an author
- activities with a date of the last modification that does not correspond to the date of the last synchronization.
When selecting new Creatio activities, configure a set of common and custom filters. The main filter conditions are:
- Activity type is not "email".
- Activity does not have the [Display in calendar] checkbox selected.
A user can specify activity groups that will be exported from Creatio.
Extra
Filling in the [Start Date] and [Due Date] fields
The ExchangeTask object has several features for working with start date and due date:
- These fields are stored without time values. If you change a task in MS Exchange after synchronization, Creatio will apply the date from the MS Exchange task, and the time from the Creatio activity.
- The due date in ExchangeTask has two fields: due date and complete date.
- The start date and due date are optional in MS Exchange. If either of them is not filled in, the current date is set. Due to this, conflicts may arise, as both the start date and due date are required in Creatio, and the start date should be earlier than the due date.