Mapeo condicional en transformaciones en Jitterbit Integration Studio
Introducción
La creación de una condición en un nodo de destino, denominada mapeo condicional, permite especificar si un registro de origen que se está procesando debe enviarse al destino según una condición definida. La condición determina si el registro se mapea. Como parte de esta determinación, se puede incluir lógica para definir los valores que se utilizan en el mapeo. Por ejemplo, un registro podría usarse solo si el tamaño de un campo de texto es menor que un máximo especificado.
Notas importantes
Al utilizar un secuencia de comandos de condición en un nodo de destino, tenga en cuenta estas notas:
- Se pueden agregar condiciones a los nodos de destino con una cardinalidad de
[0+]
,[0, 1]
, o[1+]
En cualquier nivel de estructura. Si se requiere un nodo ([1+]
) y la condición se evalúa comofalse
, 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 nodo. Por lo tanto, toda la lógica de la condición debe residir en ella. El secuencia de comandos de condición siempre se evalúa antes de cualquier campo objetivo. Esto significa que toda la lógica para crear o determinar los valores de dichos campos objetivo debe estar en el secuencia de comandos de condición si secuencia de comandos requiere dichos valores para completar su determinación. - Si existen múltiples condiciones, se evalúan en orden del nodo externo al nodo interno; si están en el mismo nivel, se evalúan en orden de arriba a abajo.
Añadir una condición
Puede agregar condiciones como secuencias de comandos en nodos de destino con una cardinalidad de [0+]
, [0, 1]
, o [1+]
. Desde cualquiera de los dos modo de mapeo o modo secuencia de comandos, pase el cursor sobre el nombre del nodo y haga clic en el Icono del menú de acciones de menú de acciones para abrirlo. En el menú, seleccione Añadir condición al nodo:
Al seleccionar esta opción, si aún no está en el modo de secuencia de comandos, pasará al modo de secuencia de comandos para crear una condición ingresando un secuencia de comandos en el nodo seleccionado:
El contenido del secuencia de comandos especifica la condición para generar el registro. Una condición debe devolver un true
(1) o false
Valor (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á en modo de mapeo y hay un secuencia de comandos condicional presente, un El icono de condición se muestra en el nodo de destino. Cuando se utiliza un objeto o variable de origen en un secuencia de comandos condicional, líneas de mapeo están conectados al nodo, y el recuento de asignaciones incluye los nodos en los que se hace referencia al campo o variable de origen:
Nota
Si el nodo es obligatorio ([1+]
) y la condición se evalúa como false
, la operación puede fallar en tiempo de ejecución.
Ejemplo 1
El secuencia de comandos a continuación requiere que el objeto de origen code
evalúa a true
para que el expediente sea procesado. Si code
evalúa a false
, entonces se omite el nodo y este registro en particular no se procesa:
Ejemplo 2
También puedes usar el ==
El operador igual se utiliza como abreviatura para escribir secuencias de comandos de condición. Por ejemplo, la misma condición utilizada en el Ejemplo 1 podría escribirse así:
Ejemplo 3
Para establecer una condición tal que un registro se use solo si se estableció un indicador para publicarlo, puede usar un secuencia de comandos como este:
bool(Publish_To_Community__c) == true
Ejemplo 4
Para establecer una condición que permita que un registro se utilice solo si su tamaño es menor que el máximo, suponiendo que el texto del artículo se encuentra en el elemento. json$results$item.body$view$value$
Podrías usar un secuencia de comandos 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 secuencia de comandos de condición también puede establecer valores utilizados en otros nodos. A partir del Ejemplo 4, el nodo de condición puede, como parte de su lógica, establecer el contenido deseado de un campo en una variable global:
...
$articleDetails = Replace(json$results$item.body$view$value$,
'href="/','href="https://example.com/');
...
La variable global se utiliza para establecer el valor en el campo objetivo deseado. Article_Details__c
:
$articleDetails;
Editar una condición
Desde cualquier modo de mapeo o modo secuencia de comandos, haga clic en el botón naranja Icono de condición mostrado a la derecha del nodo objetivo:
O bien, pase el cursor sobre el nombre del nodo y haga clic en el icono Icono del menú de acciones de menú de acciones para abrirlo. En el menú, seleccione Editar condición.
Si aún no se encuentra en el modo de secuencia de comandos, se lo lleva al modo de secuencia de comandos para editar la condición editando el secuencia de comandos en el nodo seleccionado.
Eliminar una condición
Desde cualquier modo de mapeo o modo secuencia de comandos, pase el cursor sobre el nombre del nodo y haga clic en el Icono del menú de acciones de menú de acciones para abrirlo. En el menú, seleccione Eliminar condición:
Se borra el contenido del secuencia de comandos, eliminando la condición.
También puedes eliminar una condición editando manualmente el secuencia de comandos de condición para borrar el contenido del secuencia de comandos.