O plugin adota um controlo de versionamento baseado num sistema de hashing. Cada pipeline, possui um controlo de versionamento, ou seja, possui uma
chave de hashing que permite identificar se o subset de informação (hashset) ainda não foi objeto de integração ou se eventualmente
sofreu alguma alteração nos seus dados, requerendo para o efeito nova
integração.
Esta técnica de hashing aplica-se
a um segmento de informação (hashset), isto é, permite identificar quais os
atributos que compõem a chave de hashing (ignorando, deste modo,
pedidos de integração quando a entidade sofre alteração em atributos que não
constam na composição da chave).
Todos os pipelines possuem
uma chave de hashing (definida recorrendo a campos do utilizador) no
PRIMAVERA ERP V10 e um ficheiro de hashing (definido em formato JSON), para
controlo de versionamento. Caso uma entidade física (tabela) possua
vários pipelines, deverão ser criadas tantas chaves de hashing quanto
o número de pipelines derivados da tabela (poderão eventualmente partilhar
o ficheiro de hashing).
Composição (Campos do Utilizador) da Hashing Key de um Pipeline:
- SourceHash: atributo usado para cálculo da hash no sistema (calculado sempre que é realizado um pedido de leitura);
- TargetHash: atributo usado para preservar o valor da hash no sistema (atualizado sempre que é realizada uma integração com sucesso);
- IsSync: atributo usado nas listas de integração como filtro condicional (este atributo indica se o registo já foi integrado, é controlado pela comparação dos valores dos atributos “SourceHash” e “TargetHash”);
Composição
do Hashing File de um Pipeline:
- Algorithm: identifica o algoritmo de hashing (quando ignorado, o sistema assume MD5);
- BaseEntity: identifica a entidade base, ou seja, a tabela principal (atributo de definição obrigatória);
- LyncEntities: identifica as entidades relacionadas, incluindo a entidade base (quando ignorado, o sistema assume a BaseEntity);
- Attributes: identificamos atributos que constituem a chave de hashing, ou seja, os atributos usados para o cálculo da hash (quando ignorado, o sistema assume todos os atributos);
- Filter: identifica o filtro condicional aplicar no cálculo da hash (quando ignorado, o sistema não aplica qualquer condicionalismo);
- FieldSourceHash: identifica o atributo SourceHash (quando ignorado, o sistema assume SourceHash);
- FieldTargetHash: identifica o atributo TargetHash (quando ignorado, o sistema assume TargetHash );
- FieldSyncHash: identifica o atributo IsSync (quando ignorado, o sistema assume IsSync );
A
imagem seguinte apresenta a metodologia conceptual do processo de hashing suportado pelo plugin.