Descripción


La tarea Correlation Id Setter se encarga de asignar un identificador de correlación al mensaje entrante para que después puedan ser relacionados por la tarea Correlator.

Funcionamiento

La tarea almacena en la cabecera del mensaje un valor que se podrá usar como criterio de relación en la tarea Correlator. Si no se rellena el campo ‘selección del nodo’, se almacenará como valor de relación el propio identificador del mensaje. 

Parámetros

Selección del nodo

Expresión XPath para seleccionar el nodo que contiene el valor que se desea establecer como valor de relación. Si se deja en blanco, se utilizará como valor de relación el identificador del mensaje.


U4aggJV-GiO7D3CKBn8B32wVL1cpyWtznA.pngIdentificador de correlación en la cabecera del mensaje: Todos los mensajes de i2factory mantienen una cabecera con información extra adicional a los elementos del mensaje XML, lo que se denominan metadatos, como podrían ser el propio identificador del mensaje (de tipo UUID), la fecha de creación y un mapa de pares clave-valor con otra información extra. Toda esta información no es visible ni accesible por el usuario estándar de i2factory. CorrelatorIDSetter es una excepción o una manera de salvar esa limitación, ya que permite al usuario establecer en el mapa un valor con la clave especial Correlation_ID, que podría usar una tarea Correlator posterior para relacionar mensajes. Si no se especifica nada en el parámetro, la tarea por defecto establece el valor de Correlation_ID con propio el identificador del mensaje. De todos modos para que la tarea Correlator haga uso de ese identificador de la cabecera es necesario no especificar nada tampoco en sus propios parámetros. Es decir, la tarea Correlator primero comprueba si tiene expresiones XPATH que indiquen el criterio por el que relacionar. Y si no tiene ninguno establecido, utiliza el valor guardado en esa clave Correlation_ID de la cabecera.


Ejemplo de uso y configuración

En la gran mayoría de los casos, la tarea Correlation Id Setter no necesita ser configurada, como en el siguiente ejemplo:


tqtctHbvmiEG3labEnYx6vJzaLLBhseZ5Q.png


El mensaje entrante que recibe la tarea es un mensaje con la información de un producto procedente de una tienda online Prestashop.

Posteriormente vamos a consultar en un CRM Salesforce si dicho producto existe y como normalmente suele ocurrir, tras una llamada de solicitud perdemos la información previa, pues necesitaremos duplicar el mensaje con una tarea Replicator y luego correlacionar los mensajes que lleguen con la tarea Correlator.

Para conseguir esto, tan sólo es necesario colocar la tarea Correlation Id Setter justo antes del Replicator, de esta manera todos los mensajes replicados tendrán en su cabecera un identificador de correlación por pares. Si en lugar de usar un identificador interno de i2factory, quisiéramos indicar uno propio, como por ejemplo la referencia del producto, lo podríamos indicar con una sencilla expresión XPATH:


Expresión XPATH para seleccionar la referencia


//ProductPrestashopBean/reference


U4aggJV-GiO7D3CKBn8B32wVL1cpyWtznA.pngEjemplo completo: Este ejemplo es un fragmento de una solución completa disponible en la sección de ejemplos de soluciones. En concreto se trata de la solución que Sincroniza productos de Prestashop a SalesforceTe invitamos que visites el artículo que explica la solución entera para tener mayor información de contexto.


2eyv2qq9Z45EuYqwh5IkiByxBMiJB50FaA.png