Lógica condicional en transformaciones en Jitterbit Studio
Introducción
Crear una condición en un nodo objetivo se llama lógica 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. La lógica condicional te permite especificar si un registro de origen que se está procesando debe ser enviado al objetivo según una condición definida. La condición determina (sí o no) si el registro es mapeado. Como parte de esa determinación, puedes incluir lógica para establecer qué valores se utilizan en el mapeo. Por ejemplo, podrías usar un registro solo si el tamaño de un campo de texto es menor que un máximo especificado.
Notas importantes
Cuando uses un script de condición en un nodo objetivo, ten en cuenta estos puntos:
-
Puedes agregar condiciones a nodos objetivos 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 objetivos 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 objetivo. Esto significa que toda la lógica para crear o determinar los valores de esos campos objetivo 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 exterior a nodo interior. Si están en el mismo nivel, se evalúan en el orden de arriba hacia abajo.
Agregar una condición
Puedes agregar condiciones como scripts en nodos objetivos con una cardinalidad de [0+], [0, 1] o [1+]. Pasa el cursor sobre el nombre del nodo y haz clic en para abrir el menú de acciones del nodo. Desde el menú, selecciona 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 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 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.