Anchor |
---|
| sync-dev-outline_jspx_html |
---|
| sync-dev-outline_jspx_html |
---|
|
An
External System Adapter (ESA
) is a plugin for
that enables connectivity with other systems. The ESA provides a means to synchronize data between two systems based on record timestamps. The ESA...
...
- It must be possible to obtain the modification timestamps for each record. This timestamp is typically contained in the record itself, but this is not absolutely necessary.
- Record IDs should not be changed, or at least there must be a way to determine any record ID as it was in the last sync. Record IDs can be remapped during sync, but the old ID must be made known to the ESA in order to track record matches.
- Records from the external system, as presented during sync by the ESA, must be grouped by structures, which are mapped on a 1-to-1 basis to types or tables, such as People/Employee. An ESA structure can be a table, a folder, a file or anything else that logically groups records in the external system. Within a given structure, external records must use the same set of field mappings.
Possible Configurations
This diagram shows a few possible configurations for the external system to work with
.
Image AddedIllustration of possible ESA configurations
The two white components represent the
server application itself, and the ESA remote proxy application. The four green components represent external systems that might be remote, or co-located on the machine.The blue components show possible ESA deployments:
- ESA A is located on the external host, communicating with the external system over some possibly proprietary protocol and communicating with over HTTPs, as if over the internet.
- ESA B is a command-line (CL) application, also on the external system host, but is managed (launched) by an ESA remote proxy which, in turn, communicates with over HTTPs. The ESA Remote Proxy uses standard I/O streams for message exchanges with the ESA.
- ESA X and ESA Y are similar to ESA A and ESA B, respectively, but are located on the host. ESA X is run within its external system and communicates with over HTTPs, as if over the internet. ESA Y is run and communicates directly with through STDIO.
Choosing an ESA Deployment Type
...
A remote Command-line ESA can never initiate a syncn sync cycle, but an HTTPs one can do so, by a call on the the
Helper API. In this case the initial call is
startSync(HelperAPI)
. then responds with a
startSync(ESA)
and and other calls to the ESA, finishing communication by a void result of
startSync(Helper API)
.
...
Every call has a mandatory call-id attribute. This attribute should be set by the caller to a positive integer value. It is recommended but not obligatory that this value would be incremented on each call. A result of a call has a "response-to" attribute, filled by the call-id value of the call, to which this result belongs. This simple mechanism allows monitoring of message flow and detection of communication or application failures.
Authorization
To set up or run a sync using an API call, an authorizationkey
request header is required. The value for this is found at Setup > Sync > External Sync under the Secure API Call section of the Sync record when you click Generate Keys.
ESA Data Model
stores external system user data in a knowledgebase. Knowledgebases are set up similarly to like separate databases, with many customizable tables containing configurable records, and which may be linked to other tables. One knowledgebase in a server - among many possible instances - is one side of the synchronization process. The other side is your external system, which can be virtually any legacy system, as long as its data can be logically matched against knowledgebase table records and these two requirements are met:
...
- The name of the ESA to be synchronized with
- The type of external system and ESA parameters. Usually this includes the server to synchronize with, but some ESAs such as Facebook do not require this information.
- Table and field mappings between the systems.
- A number of other parameters, such as one- or two-way synchronization, conflict resolution settings, polling and so on.
Image AddedMultiple ESAs can connect to the server
Image AddedYour ESA can also reside on your server
When the configuration is complete, the synchronization is ready to run. Every sync configuration has a unique ID, called the external system ID, which is a handle used to identify the configuration when communicating with the ESA. the external system ID is automatically generated by
and can be viewed on the Sync Configuration screen.
...