WebApi - Pipeline Hashing Calculation
El Valuekeep
Integration adopta un control de versiones con base en un sistema
de hashing. Cada pipeline tiene un control de versiones, o sea, tiene
una clave de hashing que permite identificar si el subset de
información (hashset) aún no ha sido objeto de integración o si eventualmente
ha sufrido algunas modificaciones en sus datos, solicitando para ello una nueva
integración. Esta técnica de hashing es aplicable a un segmento de
información (hashset), o sea, permite identificar los atributos que componen la
clave de hashing (ignorando, así, solicitudes de integración cuando la
entidad sufre modificaciones en atributos que no existen en la composición de
la clave).
Este
método permite calcular el hash de un pipeline, o sea, calcular el hashing
de los registros que deben ser considerados en un pipeline de integración.
Internamente, la solución de integración después de obtener el hash compara
este valor con el anterior y si son diferente, considera que el registro debe
ser objeto de nueva sincronización.
El
método usado para ello es: POST
/api/mytenant/myorganization/integration/pipelines/calchash
Antes
del uso del método, es necesario crear en cada Entidad para sincronizar, tres
atributos personalizados. Ejemplificamos a continuación un ejemplo:- custom_SourceHash:
atributo que guarda la clave de hashing del origen de los datos, deberá ser del
tipo "texto corto".
- custom_TargetHash:
atributo que guarda la clave de hashing de destino de los datos, deberá ser del
tipo "texto corto".
- custom_IsSync:
atributo que comprueba si el registro será objeto de integración, deberá ser
del tipo "booleano".
Un
ejemplo (Json) de la estructura de datos para el cálculo del hashing de
un 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"
}
Descripción
de los atributos disponibles en la solicitud:- Algorithm:
identifica el algoritmo de hashing, cuando ignorado, el sistema asume:
MD5;
- BaseEntity:
identifica la entidad base (tabla principal);
- LyncEntities:
identifica las entidades relacionadas, cuando ignorado, el sistema asume la
propia entidad base;
- Attributes:
identifica los atributos que constituyen la clave de hashing (o sea, el
segmento usado para el cálculo del hash);
- Filter:
identifica el filtro condicional para aplicar en el cálculo del hash;
- FieldSourceHash:
identifica el atributo SourceHash, cuando ignorado, el sistema asume:
custom_SourceHash. Este atributo será usado para reservar el valor calculado;
- FieldTargetHash:
identifica el atributo TargetHash, ignorado, el sistema asume
custom_TargetHash;
- FieldSyncHash:
identifica el atributo IsSync, cuando ignorado, el sistema asume:
custom_IsSync. Este atributo será usado para controlar si el registro será o no
objeto de sincronización (los registros son clasificados para sincronización
cuando el valor del atributo FieldSourceHash difiere del valor del
atributo FieldTargetHash).
Cuando
este método es ejecutado con éxito, devuelve una estructura de datos Json de
los atributos de la clave de hashing introducido en "Attributes".
Related Articles
WebApi - Sincronización del Hashing de un Pipeline
El Valuekeep Integrator adopta un control de versiones con base en un sistema de hashing. Cada pipeline tiene un control de versiones, o sea, tiene una clave de hashing que permite identificar si el subset de información (hashset) aún no ha sido ...
Plugin V10 – Pipelines – Hashing
El plugin adopta un control de versiones con base en un sistema de hashing. Cada pipeline tiene un control de versiones, o sea, tiene una clave de hashing que permite identificar si el subset de información (hashset) aún no ha sido objeto de ...
¿Cómo personalizar las tags de una pipeline para el URL de la solicitud?
En Valuekeep tenemos solicitudes "POST" derivadas de claves, ejemplificadas a continuación: El método a usar para crear un registro de seguimiento en una orden de trabajo es: POST ...
WebAPI - Eliminación de una requisición
Este método permite eliminar una requisición. El método a usar para eliminar una requisición es: DELETE url/api/mytenant/myorganization/requisitions/requisitions/{{company}}/{{requisitionKey}} Los parámetros a sustituir en el método son: i.company: ...
WebAPI - Creación de una herramienta
Este método permite, de forma simplificada, crear una herramienta. El método a usar para crear una herramienta es: POST url/api/mytenant/myorganization/assetmanagementcore/equipmentItems Ejemplo de Json para creación de una herramienta: 1. { ...