Creatio development guide
PDF
This documentation is valid for Creatio version 7.12.0. We recommend using the newest version of Creatio documentation.

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 bpm'online and MS Exchange. The task synchronization algorithm is no different from that described in the "Bpm'online synchronization with external storages" article. The process runs in three stages:

  1. Retrieving changes from MS Exchange and applying them;
  2. Retrieving changes from bpm'online and applying them
  3. Creating new tasks from bpm'online in MS Exchange.

Integration classes

As described in the "Bpm'online 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 bpm'online 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 bpm'online objects to the ExchangeTask class fileds is shown on table 1.

Table 1. The correspondence of bpm'online objects to the ExchangeTask class fileds

Bpm'online 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 bpm'online. The updated changes are applied in the corresponding system.

When you select modified bpm'online 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 bpm'online activities, configure a set of common and custom filters. The main filter conditions are: 

  1. Activity type is not "email".
  2. Activity does not have the [Display in calendar] checkbox selected.

A user can specify activity groups that will be exported from bpm'online.

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, bpm'online will apply the date from the MS Exchange task, and the time from the bpm'online 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 bpm'online, and the start date should be earlier than the due date.

 

© bpm'online 2002-2019.

Did you find this information useful?

How can we improve it?