O plugin PRIMAVERA V10 – Valuekeep Integration adopta 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 com recurso a campos do utilizador) no sistema origem 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 da Hashing Key de um Pipeline:
- SourceHash: atributo usado para cálculo da hash no sistema origem (calculado sempre que é realizado um pedido de leitura);
- TargetHash: atributo usado para preservar o valor da hash no sistema destino (actualizado 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;
- BaseEntity: identifica a entidade base (tabela principal);
- LyncEntities: identifica as entidades relacionadas (incluindo a entidade principal);
- Attributes: identificamos atributos que constituem a chave de hashing (ou seja, usados para o cálculo da hash);
- Filter: identifica o filtro condicional aplicar no cálculo da hash;
- 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.