Creating integration connectors
You can add integration connector classes into your application in two ways:
Creating connectors in the App_Code folder
- Open your Kentico web project in Visual Studio.
- Create a new class in the App_Code folder (or Old_App_Code if you installed Kentico as a web application project).
- Set the class to inherit from BaseIntegrationConnector.
- Override the Init() method and set the ConnectorName property within this method.
- The value of the ConnectorName property must match the code name of the connector object registered in the administration interface.
using CMS.Synchronization;
using CMS.SynchronizationEngine;
public class CMSIntegrationConnector : BaseIntegrationConnector
{
/// <summary>
/// Initializes the connector name.
/// </summary>
public override void Init()
{
// Initializes the connector name (must match the code name of the connector object in the system)
// GetType().Name uses the name of the class as the ConnectorName
ConnectorName = GetType().Name;
}
}
Ensure that the system loads the appropriate class when working with the connector using the RegisterCustomClass assembly attribute. See Loading custom classes from App_Code for more information.
using CMS; [assembly: RegisterCustomClass("CMSIntegrationConnector", typeof(CMSIntegrationConnector))]
On web application projects, build the solution.
With the connector class prepared, you now need to:
- Implement outgoing and/or incoming synchronization
- Register the connector in the system
You can find an example of a basic connector class on the Example - Integration connector page.
Creating connectors in a separate project or assembly
- Open your Kentico web project in Visual Studio (using the WebSite.sln or WebApp.sln file).
- Add a new project Class Library to the solution (name it e.g. CustomIntegrationConnector).
- This ensures that the connector has its own DLL assembly.
- Add references to the project:
Right-click the project and select Add reference…
Click Browse…
Add at least the following references from the project’s Lib directory:
- CMS.Synchronization
- CMS.SynchronizationEngine
- CMS.DocumentEngine
- CMS.Helpers
- CMS.DataEngine
- CMS.SiteProvider
- CMS.WorkflowEngine
- CMS.Base
- Edit and rename the default class in the project and set the class to inherit from *BaseIntegrationConnector**.*
- Override the Init() method and set the ConnectorName property within this method.
- Build the solution.
With the connector class prepared, you now need to:
Registering connectors in the system
Once the connector’s class is ready, you need to register the connector as an object in the system:
In the Kentico administration interface, open the Integration bus application.
Select the Connectors tab.
Click New connector.
Fill in the Display name, Assembly name and Class and select the Enabled check box.
Property
Description
Display name
The name of the connector displayed in the user interface.
Code name
Sets a unique identifier for the connector. Must match the value of the ConnectorName property declared in the connector’s class.
Provider class
Specifies the class where the connector class is implemented:
- **Assembly name** \- the assembly (project) containing the connector class. Select *(custom classes)* for connectors implemented in the App\_Code (or Old\_App\_Code) folder.- **Class** \- the exact class (including any namespaces) that defines the functionality of the connector. For App\_Code classes, the value must match the first parameter of the *RegisterCustomClass* attribute that loads the class.
Enabled
Indicates if the connector logs and processes integration tasks. Logging and processing of tasks must also be enabled in Settings -> Integration -> Integration bus.
Click Save.
Note: When you add, edit or delete a connector, the system re-initializes all defined connectors.
The system displays a warning icon () next to connectors that are not registered correctly. The most common causes of problems are:
- The value of the ConnectorName property in the connector class’s Init method does not match the Code name.
- Incorrect assembly or class name.
- App_Code classes are not loaded correctly. See Loading custom classes from App_Code for more information.