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.
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".
Related Articles
WebApi - Sincronização do Hashing de um Pipeline
O Valuekeep Integrator 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 ...
WebApi - Monitorização da Pipeline
O Valuekeep Integrator, conceptualmente, possibilita a monitorização da execução de todos os pipelines. Esta funcionalidade, permite ao implementador / integrador controlar a execução dos fluxos de integração e inclusive identificar situações ...
WebAPI - Como obter o registo da webapi?
No momento em que é realizada a subscrição no Valuekeep CMMS o subscriber recebe um email com as credenciais da subscrição, compostas por client_Id e um Cliente_Secret. Estas credencias devem ser guardadas, caso contrário não será possível utilizar a ...
Como customizar as Tags de uma Pipeline para o Url do pedido
No Valuekeep temos pedidos "POST" devivados de chaves, exemplificando a seguir: O método a utilizar para a criação de um registo de follow-up numa Ordem de Trabalho é: POST ...
Plugin V10 - Pipelines - Hashing
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 ...