Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Anchor
sync-dev-outline_jspx_html
sync-dev-outline_jspx_html
An External System Adapter (ESA) is a plugin for 
Companyname
 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 
    Companyname
     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 

Companyname
.

Illustration of possible ESA configurationsImage Added

The two white components represent the 

Companyname
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 
Companyname
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
    Companyname
    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
    Companyname
    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 
    Companyname
    host. ESA X is run within its external system and communicates with 
    Companyname
    over HTTPs, as if over the internet. ESA Y is run and communicates directly with 
    Companyname
    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

Companyname
 Helper API. In this case the initial call is startSync(HelperAPI). 
Companyname
 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

Companyname
 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. 

Lucidchart
rich-viewertrue
autofittrue
nameESA Figure 2-1148-4e38c1f1
width944
id6af391ab-bed5-4687-b088-1ef44268cf5e
alignLeft
height592

Multiple ESAs can connect to the serverImage Added

Your ESA can also reside on your serverImage Added Lucidchartrich-viewertrueautofittruenameESA Figure 3-99-c39ed368width762ida302c211-f855-48a2-8d03-c1d94fe4382balignLeftheight608

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 

Companyname
 and can be viewed on the Sync Configuration screen. 

...