Lógica condicional en transformaciones en Jitterbit Integration Studio
Introducción
Crear una condición en un nodo de destino se llama mapeo condicional. Esta función amplía los conceptos básicos de mapeo al agregar lógica empresarial para controlar cuándo se procesan los datos. El mapeo condicional permite especificar si un registro de origen que se está procesando debe ser enviado al destino según 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 afalse
, 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+]
. Pase el cursor sobre el nombre del nodo y haga clic en para abrir el menú de acciones del nodo. Desde el menú, seleccione Agregar condición al nodo.
Cuando seleccionas esta opción, se abre el área de script editable en el nodo de destino.
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 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:
Nota
Si el nodo es obligatorio ([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 particular no se procesa:
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:
Ejemplo 3
Para establecer una condición de tal manera que un registro se use solo si se estableció un indicador para publicarlo, podrías usar un script como este:
bool(Publish_To_Community__c) == true
Ejemplo 4
Para establecer una condición de tal manera 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 previsto 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 luego para establecer el valor en el campo de destino deseado Article_Details__c
:
$articleDetails;
Gestión de condiciones
Se puede editar o eliminar una condición haciendo clic en el ícono de condición que se muestra a la derecha del nodo de destino. También se puede pasar el cursor sobre el nombre del nodo y hacer clic en para abrir el menú de acciones del nodo.