simpleVariables y complexVariables

En Kosmos, existen diferentes funciones y herramientas que ayudan a crear, obtener o modificar variables en un flujo. Para facilitar esta tarea, se han desarrollado dos métodos propios de la plataforma: simpleVariables y complexVariables.


El método simpleVariables.set se utiliza para obtener, crear variables de forma práctica en un flujo. Para asignar un valor a una variable, se utiliza la siguiente estructura:


simpleVariables.set("nombre_variable", valor);


El valor puede ser un valor fijo definido por el usuario, un valor capturado de un campo de formulario o el resultado de una función LET, entre otros. Además, también es posible modificar el valor de una variable existente utilizando el método simpleVariables.modify.


Por otro lado, el método complexVariables.set se utiliza para obtener, crear o modificar arreglos y objetos. Para crear un arreglo, se utiliza la siguiente estructura:


complexVariables.set("nombre_lista", [valor, valor, valor]);


Mientras que para crear un objeto, se utiliza la siguiente estructura:


complexVariables.set("nombre_objeto", {"variable": valor, "variable": valor, variable: valor});

Además de los ejemplos previos, tanto simpleVariables como complexVariables son compatibles con diversos tipos de datos y usos, lo que las hace herramientas muy versátiles. Para asignar, crear o modificar variables, según el tipo de dato, se escribe de la siguiente manera.

STRING - Escribe tu valor entre comillas.

ENTERO - Escribe el número.

FLOAT - Escribe el número con decimales.

DECLARACIÓN DE VARIABLES - Escribe el nombre de la variable

VARIABLE DE FLUJO - Escribe el nombre de la variable (parámetro de entrada).

BOOLEAN - Escribe true o false o, 0 o 1.

También es posible obtener documentos a través de base64 con la variación documentVariables. 

A continuación, te mostramos algunos ejemplos:



Para asignar un valor de tipo string a una variable, simplemente usamos la siguiente estructura:


simpleVariables.set("nombre_variable", "valor");





Para asignar un valor de tipo entero a una variable, utilizamos esta estructura:



simpleVariables.set("nombre_variable", 123);




Para asignar un valor de tipo float a una variable, utilizamos esta estructura:


simpleVariables.set("nombre_variable", 12.34);




Para asignar el resultado de una declaración de variables a otra variable, simplemente usamos su nombre:


simpleVariables.set("nombre_variable", variableDeclarada);


numerproductos = carrito

simpleVariables.set (“pedido”, numeroproductos);




Para asignar a una variable el valor de otra variable dentro del flujo, utilizamos la siguiente estructura:


simpleVariables.set("nombre_variable", variable);




Para asignar un valor booleano a una variable, utilizamos la siguiente estructura:


simpleVariables.set("nombre_variable", true o false);



Para crear un arreglo, utilizamos esta estructura:


complexVariables.set("nombre_lista", [valor, valor, valor]);


También puedes crear arreglos con las distintas opciones seleccionados en campos de tipo Checklist. 




Para crear un objeto, utilizamos esta estructura:


complexVariables.set("nombre_objeto", {“variable”: valor, “variable”: valor, variable: valor}); 




Para obtener el valor de una propiedad de un objeto JSON, utilizamos esta estructura:


simpleVariables.set(“nombre_variable”, _json.get(“variable_respuesta”));



Para obtener el valor de una propiedad de un objeto JSON, utilizamos esta estructura:


simpleVariables.set(“nombre_variable”, _json.get("objeto_respuesta").get(“variable_respuesta”));



Para obtener el valor de una propiedad de un arreglo JSON, utilizamos esta estructura:


simpleVariables.set("nombre_variable", _json.get("arreglo_respuesta")[1].get("variable_arreglo"));



Para obtener el valor de una propiedad de un objeto XML, utilizamos esta estructura:


simpleVariables.set("nombre_variable", _xml.get("objeto_respuesta").get("variable_respuesta"));



Para obtener el valor de una propiedad de un objeto XML, utilizamos esta estructura:


simpleVariables.set(“nombre_variable”, _xml.get(“variable_respuesta”));



Para obtener un objeto completo de un objeto JSON, utilizamos esta estructura:


complexVariables.set("nombre_objeto", _json.get("objeto_respuesta"));

"nombre_objeto" Es el nombre que le vas a dar al objeto en el flujo

"objeto_respuesta" Es el nombre del objeto tal y como aparece en la respuesta JSON.



Para obtener un arreglo completo de una respuesta JSON, utilizamos esta estructura:


complexVariables.set("nombre_lista", _json.get("lista_respuesta"));

"nombre_lista" Es el nombre que le vas a dar la lista en el flujo

"lista_respuesta" Es el nombre de la lista tal y como aparece en la respuesta JSON.



Para obtener un objeto completo de un objeto XML, utilizamos esta estructura:


complexVariables.set("nombre_objeto", _xml.get("objeto_repuesta"));

"nombre_objeto" Es el nombre que le vas a dar la lista en el flujo

"objeto_respuesta" Es el nombre de la lista tal y como aparece en la respuesta 



Para modificar un valor de tipo string a una variable, simplemente usamos la siguiente estructura:


simpleVariables.modify(“variable”, "nuevo_valor");

"variable" Es la variable cuyo valor vas a modificar

"nuevo_valor" Es el nuevo valor que se va a asignar a esa variable, puedes capturar un valor fijo, o usar otra variable.


Además de los ejemplos previos, tanto simpleVariables como complexVariables son compatibles con diversos tipos de datos y usos, lo que las hace herramientas muy versátiles. A continuación, te mostramos algunos ejemplos

Ejemplos de uso


Para asignar un número de cuenta aleatorio:

simpleVariables.set("numeroCuenta", Math.floor(Math.random() * 100000000));


En este caso, se usa una función matemática para generar un número aleatorio y se asigna a la variable "numeroCuenta".


Para calcular el monto de la primera inversión:

let montoInicial = net_monthly_income_ * 12;

simpleVariables.set("montoInicial", montoInicial);


En este caso, se realiza una operación matemática para calcular el monto de la primera inversión y se asigna a la variable "montoInicial".  En este código se usa el parámetro de entrada net_monthly_income_ del campo “Ingreso neto mensual comprobable” de un formulario.