IntegraçõesGeral
Geral
Voltar | Lista de artigos
Cálculo do Hashing de um Pipeline
O 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).
Este método permite calcular o hash de um pipeline, isto é, calcular o hashing dos registos que devem ser considerados num pipeline de integração. Internamente, a solução de integração após obter o hash, confronta este valor com o anterior e no caso de diferirem considera que o registo deve ser objeto de nova sincronização.
Método
O método utilizado para o efeito é: POST /api/mytenant/myorganization/integration/pipelines/calchash
Antes da utilização do método, é necessário criar em cada Entidades a sincronizar, três atributos personalizados. Exemplificamos a seguir um exemplo:
- custom_SourceHash: atributo que guarda a chave de hashing da origem dos dados, deverá ser do tipo "texto curto".
- custom_TargetHash: atributo que guarda a chave de hashing do destino dos dados, deverá ser do tipo "texto curto".
- custom_IsSync: atributo que valida se o registo será objeto de integração, deverá ser do tipo "booleano".
Um exemplo (Json), da estrutura dos dados para o cálculo do hashing de um pipeline.
{ "Alghoritm": "MD5", "BaseEntity": "BusinessCore.Brands", "LyncEntities": "BusinessCore.Brands JOIN BusinessCore.BrandModels ON BusinessCore.Brands.Id = BusinessCore.BrandModels.BrandId", "Attributes": "BusinessCore.Brands.BrandKey, BusinessCore.Brands.Description, BusinessCore.BrandModels.ModelKey, BusinessCore.BrandModels.Description as ModelDescription", "Filter": "", "FieldSourceHash": "custom_SourceHash", "FieldTargetHash": "custom_TargetHash", "FieldIsSync": "custom_IsSync" }Descrição dos atributos disponíveis no pedido:
- Algorithm: identifica o algoritmo de hashing, quando ignorado o sistema assume: MD5;
- BaseEntity: identifica a entidade base (tabela principal);
- LyncEntities: identifica as entidades relacionadas, quando ignorado o sistema assume a própria entidade base;
- Attributes: identifica os atributos que constituem a chave de hashing (ou seja, o segmento usado 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: custom_SourceHash. Este atributo será usado para reservar o valor calculado;
- FieldTargetHash: identifica o atributo TargetHash, quando ignorado, o sistema assume: custom_TargetHash;
- FieldSyncHash: identifica o atributo IsSync, quando ignorado, o sistema assume: custom_IsSync. Este atributo será usado para controlar se o registo será ou não objeto de sincronização (os registos são classificados para sincronização quando o valor do atributo FieldSourceHash difere do valor do atributo FieldTargetHash).
Quando este método é executado com sucesso devolve uma estrutura de dados Json dos atributos da chave de hashing inserido em "Attributes".
Esta página foi útil?
Obrigado pelo seu voto.