Saltar al contenido

Funciones lógicas en Jitterbit Design Studio

Utiliza las funciones lógicas para controlar el flujo de los scripts de Jitterbit.

Nota

  • El número máximo de iteraciones de bucle permitidas en Harmony es 50,000.
  • El número máximo de iteraciones de bucle en Jitterbit Script Language es por cada bucle individual. Para aumentar el número permitido de iteraciones por bucle en un script de Jitterbit Script Language, consulta Jitterbit.scripting.while.max_iterations en Variables de scripting de Jitterbit.
  • El número máximo de iteraciones de bucle en JavaScript es por script (agregado de todos los bucles dentro de un script). Para aumentar el número máximo de iteraciones de bucle en JavaScript, consulta Bucle de Java script en JavaScript.

Case

Declaración

typeN Case(bool b1, type1 arg1[, bool b2, type2 arg2,... bool bN, typeN argN])

Sintaxis

Case(<b1>, <arg1>[, <b2>, <arg2>,... <bN>, <argN>])

Parámetros requeridos

  • b1: Una expresión a evaluar por su resultado booleano
  • arg1: Un argumento a devolver si b1 es true

Parámetros opcionales

  • b2... bN: Expresiones adicionales a evaluar por su veracidad
  • arg2... argN: Argumentos adicionales a devolver si el parámetro correspondiente es true

Descripción

Esta función evalúa pares de argumentos: si la evaluación de la expresión en el primer argumento de un par es true, deja de verificar y devuelve el segundo argumento preservando el tipo. De lo contrario, verificará el siguiente par, y así sucesivamente. Si ninguno de los pares se evalúa como true, se devuelve null.

Para crear un caso predeterminado o de paso, utiliza true y el valor de retorno deseado como el último par. Consulta el ejemplo.

Ejemplos

Este ejemplo devuelve "Very Expensive" si price es 1000 o superior. El true en el último par de argumentos sirve como caso predeterminado o de paso.

$label = Case(price < 10, "Cheap",
              price < 100, "Not Cheap",
              price < 1000, "Expensive",
              true, "Very Expensive");

Equal

Declaración

bool Equal(type1 array1, type2 array2)

bool Equal(type1 arg1, type2 arg2)

Sintaxis

Equal(<array1>, <array2>)

Equal(<arg1>, <arg2>)

Parámetros requeridos

  • array1, array2: (Primera forma) Dos arrays de la misma longitud y dimensión; si no es así, la función devuelve false

  • arg1, arg2: (Segunda forma) Dos tipos simples o expresiones

Descripción

Realiza una comparación recursiva de dos arrays. Devuelve true si todos los miembros correspondientes de los arrays son iguales; de lo contrario, devuelve false. También se puede utilizar con tipos simples y sigue reglas de conversión para promover diferentes tipos y compararlos.

Llamar a esta función para comparar dos arrays es diferente a usar el operador == en dos arrays. Usar el operador == en dos arrays devuelve un array de booleanos que contiene el resultado de una comparación de cada miembro del array. Usar esta función compara cada elemento correspondiente a su vez.

La función Equal() siempre devuelve false si los dos argumentos de array tienen tamaños diferentes.

Se realiza conversión y promoción de tipos si los argumentos o elementos que se comparan son de diferentes tipos.

Ejemplos

x = {1, 2.0, 3};
y = {1, 5, 3};

// Returns false since 2.0 != 5
Equal(x, y);

// Returns true because both arrays contain only non-zero numbers.
// Comparison is made as booleans
Equal(Bool(x), y);

If

Declaración

typeN If(bool condition, type1 trueResult[, type2 falseResult])

Sintaxis

If(<condition>, <trueResult>[, <falseResult>])

Parámetros requeridos

  • condition: Una expresión que se evalúa para obtener su resultado booleano
  • trueResult: Una expresión que se evalúa y su resultado se devuelve si condition es true

Parámetros opcionales

  • falseResult: Una expresión que se evalúa y su resultado se devuelve si condition es false

Descripción

Devuelve trueResult si condition es true, de lo contrario devuelve falseResult.

Si el primer argumento (condition) no es un tipo de dato booleano, se convierte a booleano antes de evaluarse. Si no se especifica el tercer argumento opcional y condition es false, se devuelve un valor null.

Ejemplos

//  Returns "Diane"
If(false, "Jack", "Diane");

// Returns "Spoon"
If(7>4, "Spoon", "Knife");

// Adds a trailing comma to s if s is not empty
If(Length(s)>0,
    s = s + ",";
    );

While

Declaración

null While(bool condition, type expression)

Sintaxis

While(<condition>, <expression>)

Parámetros requeridos

  • condition: Una expresión que se evalúa para obtener su resultado booleano
  • expression: Una expresión que se evalúa repetidamente mientras condition sea true

Descripción

Ejecuta repetidamente una expresión mientras una condición sea true.

La variable de Jitterbit jitterbit.scripting.while.max_iterations limita el número de iteraciones. Se reporta un error si se alcanza el número máximo de iteraciones.

Nota

Este límite es independiente del límite a nivel de agente en las llamadas síncronas de RunOperation realizadas desde dentro de un bucle While (50 por defecto). jitterbit.scripting.while.max_iterations limita el número total de iteraciones del bucle, independientemente de lo que haga el bucle en cada pasada. El límite de RunOperation en su lugar solo limita el número de llamadas síncronas de operaciones secundarias realizadas dentro del bucle. Consulta la nota bajo RunOperation para más detalles.

Ejemplos

$jitterbit.scripting.while.max_iterations = 2000;
i = 0;
arr = {"a@example.com", "b@example.com", "c@example.com"};
s = "";
// Concatenates the elements of the array arr
// with commas separating each element
While(i < Length(arr),
    s = s + Get(arr,i) + ",";
    i++;
    );