13 YEARS AGO

Test driving the (system integration) bus

The system integration bus is the "General point where integration providers can connect to provide synchronization with external systems.". It allows you to link Kentico CMS with external systems like Dynamics CRM and synchronize the data between the two. Changes to the systems will either be synced synchronously or asynchronously.

The system integration bus is the "General point where integration providers can connect to provide synchronization with external systems.". It allows you to link Kentico CMS with external systems like Dynamics CRM and synchronize the data between the two. Changes to the systems will either be synced synchronously or asynchronously.

First you will have to enable the system integration bus module which is turned off by default. Go to the "Settings" section in "Site Manager" and in the (global) site settings, expand the Integration category and select "Integration bus". Check the box to "Enable system integration bus" and hit Save.

settings.png

Now you can register connectors in the "Integration bus" module in the "Site Managers" administration section:



A connector is a custom class that inherits from the "BaseIntegrationConnector" base class and can be provided as a compiled assembly or from App_Code. Simply override and implement the Init method, where you specify the connector name (it must be same as in the definition in UI). Then you can use subscriptions to subscribe to either objects or documents.

connector_code.png

The screenshot above shows an example of a Kentico CMS 6.0 BETA connector that allows object and document synchronization.

With every subscription you can specify the way it should be processed (i.e. synch/async). The following options are available:

1. SyncSnapshot: Synchronous processing with complete object/document data (child objects etc.) Runs in context of the application allowing retrieving any additional data. This type is the first priority during processing.
  
2. AsyncSnapshot: Asynchronous processing with complete object/document data (child objects etc.) including all translations. This type is the second priority during processing.

3. AsyncSimpleSnapshot: Asynchronous processing with data of object/document itself (including its translations). This type is the third priority during processing.

4. AsyncSimple: Asynchronous processing with data of object/document itself (without any translations). This type is the fourth priority during processing.

Once your done with coding the connector you can register it in the connectors tab:

connector_edit.png

The integration bus will create tasks for every object and document creation, modification or deletion according to the specified connector. These tasks are visible in the outgoing and incoming tasks screens of the "Integration bus" module and will disappear when they successfully execute.

outgoing_task.png

The synchronization log allows you to get some detailed information in case of an error:

log.png

And that is basically all to it! You can now sit back and relax while the bus synchronizes the data.

Special thanks go out to Jaroslav Kordula for his help and expertise!