The VALUEKEEP V3 - Valuekeep Integrator plugin adopts
a versioning control based on a hashing system. Each pipeline has a versioning
control, that is, it has a hashing key that allows identifying if the subset of
information (hashset) has not yet been integrated or if it has eventually
suffered some change in its data, requiring a new integration.
This hashing technique is applied to an information
segment (hashset), that is, it allows identifying which attributes compose the
hashing key (thus ignoring integration requests when the entity undergoes
changes in attributes that are not part of the key's composition).
All pipelines have a hashing key (defined using user
fields - custom aatributes) in the source system and a hashing file (defined in
JSON format), for versioning control. If a physical entity (table) has several
pipelines, as many hashing keys should be created as the number of pipelines
derived from that table (they may eventually share the hashing file).
Composition (User Fields - Custom Attributes) of the
Hashing Key of a Pipeline:
- SourceHash: attribute used to calculate the hash
in the source system (calculated every time a read request is made);
- TargetHash: attribute used to preserve the hash
value in the source system (updated whenever a successful integration is
performed);
- IsSync: attribute used as a conditional filter
(this attribute indicates if the record has already been integrated, it is
controlled by comparing the values of the "SourceHash" and
"TargetHash" attributes);
Composition of the Hashing File of a Pipeline:
- Algorithm: identifies the
hashing algorithm (when ignored, the system assumes MD5);
- BaseEntity: identifies the
base entity, i.e. the main table (mandatory setting);
- LyncEntities: identifies the
related entities, including the main entity (when ignored, the system assumes
BaseEntity);
- Attributes: identifies
attributes that constitute the hashing key (when ignored, the system assumes
all attributes of the base entity and related ones if applicable);
- Filter: identifies the
conditional filter to apply in the hash calculation (when ignored, the system
does not apply any conditional);
- FieldSourceHash: identifies
the SourceHash attribute (when ignored, the system assumes SourceHash);
- FieldTargetHash: identifies
the TargetHash attribute (when ignored, the system assumes TargetHash);
- FieldSyncHash: identifies the
IsSync attribute (when ignored, the system assumes IsSync).
The following image shows the conceptual methodology
of the hashing process supported by the plugin.