Saltar al contenido

Mapeo condicional en transformaciones en Jitterbit Integration Studio

Introducción

Crear una condición en un nodo de destino se llama mapeo condicional. El mapeo condicional permite especificar si un registro de origen que se está procesando debe ser enviado al destino basado en una condición definida. La condición determina (sí o no) si el registro es mapeado. Como parte de esa determinación, se puede incluir lógica para establecer qué valores se utilizan en el mapeo. Por ejemplo, se podría usar un registro solo si el tamaño de un campo de texto es menor que un máximo especificado.

Notas importantes

Al usar un script de condición en un nodo de destino, tenga en cuenta estos puntos:

  • Se pueden agregar condiciones a nodos de destino con una cardinalidad de [0+], [0, 1] o [1+] en cualquier nivel de estructura. Si un nodo es requerido ([1+]) y la condición evalúa a false, la operación puede fallar en tiempo de ejecución.
  • Los nodos de destino que pueden tener una condición solo pueden tener una condición por cada nodo. Toda la lógica para la condición debe residir en esa condición.
  • El script de condición siempre se evalúa antes de que se evalúen los campos de destino. Esto significa que toda la lógica para crear o determinar los valores de esos campos de destino debe estar en el script de condición si el script de condición requiere esos valores para completar su determinación.
  • Si hay múltiples condiciones presentes, se evalúan en el orden de nodo externo a nodo interno. Si están en el mismo nivel, se evalúan en el orden de arriba hacia abajo.

Agregar una condición

Se pueden agregar condiciones como scripts en nodos de destino con una cardinalidad de [0+], [0, 1] o [1+]. Desde modo de mapeo o modo de script, pase el cursor sobre el nombre del nodo y haga clic en el ícono del menú de acciones para abrir el menú de acciones. Desde el menú, seleccione Agregar condición al nodo:

agregar condición al nodo de destino

Cuando seleccionas esta opción, si no estás ya en modo script, se te lleva al modo script para crear una condición ingresando un script en el nodo seleccionado.

El contenido del script especifica la condición para generar el registro. Una condición debe devolver un valor true (1) o false (0). Puede contener otra lógica, y un efecto secundario de esa lógica puede ser establecer el valor de otros nodos en la transformación.

Cuando estás en modo mapeo y hay un script condicional presente, se muestra un ícono de condición en el nodo de destino. Cuando se utiliza un objeto o variable de origen en un script condicional, se conectan líneas de mapeo al nodo, y el conteo de mapeos incluye nodos en los que se hace referencia al campo o variable de origen:

indicadores visuales de mapeo condicional

Nota

Si el nodo es requerido ([1+]) y la condición evalúa a false, la operación puede fallar en tiempo de ejecución.

Ejemplo 1

El script a continuación requiere que el objeto de origen code evalúe a true para que el registro sea procesado. Si code evalúa a false, entonces el nodo se omite y este registro en particular no se procesa:

condición si

Ejemplo 2

También puedes usar el operador de igualdad == como una forma abreviada para escribir scripts de condición. Por ejemplo, podrías escribir la misma condición utilizada en el Ejemplo 1 de esta manera:

condición abreviada

Ejemplo 3

Para establecer una condición de modo que un registro se use solo si se ha establecido una bandera para publicarlo, podrías usar un script como este:

bool(Publish_To_Community__c) == true

Ejemplo 4

Para establecer una condición de modo que un registro se use solo si es menor que un tamaño máximo, asumiendo que el texto del artículo está en el elemento json$results$item.body$view$value$, podrías usar un script como este:

pass = true;

// Log article size
$articleDetailsSize = Length(json$results$item.body$view$value$);
WriteToOperationLog('Current article:' +
    json$start$ + ' articleDetailsSize:' + $articleDetailsSize);

// Checks if the article size > $MaxArticleDetailSize;
// if so, the article is ignored
if($articleDetailsSize > $MaxArticleDetailSize,
    WriteToOperationLog("Ignoring Id " + json$results$item.id$ +
        " as too large (" + $articleDetailsSize + ")");
    pass = false;
);

pass;

Ejemplo 5

Un script de condición también puede establecer valores utilizados en otros nodos. Basándose en el Ejemplo 4, el nodo de condición puede, como parte de su lógica, establecer el contenido deseado de un campo a una variable global:

...
$articleDetails = Replace(json$results$item.body$view$value$,
                          'href="/','href="https://example.com/');
...

La variable global se utiliza luego para establecer el valor en el campo de destino deseado Article_Details__c:

$articleDetails;

Editar una condición

Puedes editar una condición desde modo de mapeo o modo de script haciendo clic en el ícono de condición que se muestra a la derecha del nodo de destino. También puedes pasar el cursor sobre el nombre del nodo y hacer clic en el ícono del menú de acciones para abrir el menú de acciones. Desde el menú, selecciona Editar condición:

editar condición del nodo de destino

Si no estás ya en modo de script, se te llevará al modo de script para editar la condición editando el script en el nodo seleccionado.

Eliminar una condición

Desde modo de mapeo o modo de script, pasa el cursor sobre el nombre del nodo y haz clic en el ícono del menú de acciones para abrir el menú de acciones. Desde el menú, selecciona Eliminar condición:

eliminar condición del nodo de destino

El contenido del script se borra, eliminando la condición.

También puedes eliminar una condición editando manualmente el script de condición para limpiar el script de su contenido.