Acciones
Las acciones son nodos mediante los que se agrega lógica empresarial y funcionalidades a tu app. A través de las acciones, puedes hacer lo siguiente:
llamar servicios externos o internos (con la acción HTTP Request);
asignar valores a las variables (con las acciones Set Variable y Get Variable);
crear condicionales o ciclos (con la acción Branch);
realizar operaciones matemáticas (con la acción Functions); y
definir códigos de error para rastrearlos en el log de transacciones (con las acciones Fail o Set Response Code).
Hay diferentes acciones disponibles en Studio. Sigue leyendo para aprender cómo utilizarlas.
Importante
Antes de asignar valores para cada acción, consulta el artículo Parámetros de entrada y salida para aprender cómo transferir datos en una transacción.Conectores de entrada y salida
General
Mediante esta acción, se comparan dos valores (a & b) y se devuelve verdadero o falso como respuesta según se cumpa la condición o no. El tipo de valor puede ser: number, string, boolean o date. Las condiciones son equal o not equal, y si los valores son números, hay dos condiciones adicionales, less than y greather than.
La acción Branch se utiliza cuando necesitas crear dos rutas. Por ejemplo, puedes utilizar esta acción durante la verificación de inicio de sesión y, en su lugar, tener una acción Branch con la que, si falla la verificación del usuario, se registre el error en el log de transacciones.

Para crear una ruta para las condiciones "true" y "false", haz clic en las etiquetas true o false debajo de la acción Branch y arrástralas a sus respectivos nodos de acción para conectarlos con ellas.
Luego de que se ejecutan los flujos verdadero y falso, el flujo de transacción continúa desde el flujo principal, como el nodo End en el ejemplo anterior.
Esta acción recorre una matriz para capturar, usar o editar su información e implementa una ruta lógica personalizada para cada iteración.
Por ejemplo, debes implementar un beneficio bancario nuevo que solo aplique para aquellos clientes que tengan 65 años o más. Con la acción Iterator, puedes recorrer una matriz de cuentas y, para cada fila de la matriz, ejecutar la ruta personalizada while, con la que se verifica si el usuario tiene 65 años o menos.

Una vez verificada la matriz, el flujo de transacción continúa desde el flujo principal, como por ejemplo, la acción Get Benefits del tipo Get Variable en el ejemplo anterior.
Mediante esta acción, se define un valor fijo que se puede utilizar en el flujo de transacción invocándolo con otras acciones. El valor puede ser de tipo number, string, boolean o date.
En el ejemplo de la acción Iterator, el número 64 se establece como una constante y luego se recupera como entrada mediante la acción Branch para comparar este valor con la edad del usuario. De esta manera, si el usuario tiene más de 64 años, con la ruta true se asigna una promoción o un beneficio al usuario, y si tiene 64 o menos, no se asignan.

Mediante esta acción, se establece un valor variable que se puede utilizar cuando sea necesario dentro de la transacción. Para establecer un valor variable, configuras las entradas de la acción y recuperas un valor establecido en, por ejemplo, una acción Constant.
Este valor se utiliza en el flujo con la acción Get Variable.
Mediante esta acción, se obtiene el valor de la variable guardado con la acción Set Variable, que se usará en el flujo de la transacción.
Con esta acción, se divide un objeto para obtener datos de cada componente por separado. Por ejemplo, como en el ejemplo de Iterator, tienes que implementar un beneficio bancario nuevo que solo se aplique a aquellos clientes que tengan 65 años o más. Con la acción Iterator, recorres una matriz de cuentas. Para cada fila de la matriz, puedes ejecutar la ruta personalizada while e incluir una acción Decompose con la que se separa cada dato de todas las filas de la matriz. Con la acción Decompose, puedes extraer la edad de los usuarios para utilizarla en el flujo y aplicar las reglas de promoción necesarias.
Con esta acción se agrupa una lista de objetos recibidos y se crea un objeto complejo como resultado.

Importante
Para utilizar esta funcionalidad, es necesario contar con la versión 1.15 de VT-NET.
Mediante los nodos Parallel, se pueden ejecutar varias solicitudes HTTP en paralelo para reducir u optimizar el tiempo de ejecución de las transacciones. Por ejemplo, si luego de un login necesitas recuperar los productos de la cuenta bancaria de un usuario, como el dinero disponible, los productos contratados y el saldo de las tarjetas de crédito, puedes consolidar toda la información en una única pantalla de la app para el usuario final.
los flujos paralelos son independientes entre sí, lo que significa que los datos de cada flujo no dependen de la información obtenida durante la ejecución de otro flujo. Es por esto que, luego de ejecutar el primer llamado, la transacción continúa su ejecución por otro flujo sin esperar la respuesta.
Cuando arrastras un nodo Parallel al canvas, se crean dos flujos por defecto llamados F1 y F2. Construye el flujo paralelo que necesites luego del socket del nodo Parallel, como construirías cualquier transacción. Para aprender a construir una transacción, lee Crea una transacción configurable.

Al hacer clic sobre un nodo Parallel, puedes:
hacer clic en Add parallel flow para crear un nuevo flujo paralelo.
hacer clic en el ícono de lápiz para editar el nombre el nombre del flujo paralelo.
hacer clic en el ícono de eliminación para borrar un flujo paralelo.

Nota
Con un nodo paralelo, puedes crear hasta 9 flujos paralelos en la misma transacción. Además, puedes crear paralelos dentro de paralelos para optimizar aún más la transacción.
En el ejemplo a continuación, implementaste una nueva transacción que, luego de ejecutar un login, ejecuta tres flujos paralelos. El flujo F1 obtiene la información de las tarjetas de crédito del usuario, el flujo F2 obtiene información sobre sus préstamos, y el F3 recupera información sobre sus productos adicionales contratados, como tarjetas de débito. Luego, la transacción obtiene todas las respuestas y continúa por el flujo principal, que es el nodo Script llamado Consolidated, a continuación del nodo paralelo. Los pasos restantes de la transacción se encargan de consolidar la información en la página principal del home banking del usuario y generarle un calendario de pagos.

Los pasos se ejecutan en el siguiente orden:
La transacción ejecuta el script del F1 para preparar los datos.
Luego ejecuta el HTTP Request del F1.
Sin esperar la respuesta, la transacción ejecuta el script del F2.
Se ejecuta el HTTP Request del F2.
Ejecuta el script del F3.
Ejecuta el HTTP request del F3.
Luego, la transacción recibe la respuesta de los tres nodos paralelos.
Con toda la información, la transacción continúa a partir del script Consolidated y ejecuta los pasos restantes en orden secuencial hasta el nodo End.
Buenas prácticas
Los flujos paralelos funcionan únicamente con las solicitudes HTTP. Esto quiere decir que cada flujo debe contener una acción HTTP Request, o un nodo REST o SOAP. Si no contienen ningún llamado a ningún servicio, las acciones se ejecutarán en orden secuencial.
Con esta acción, se establece un código de respuesta y un mensaje para una transacción cuando falla y se guarda el valor en el log de transacciones. Mediante esta acción también se puede finalizar la ejecución de la transacción.
A diferencia de la acción Set Response Code, la acción Fail solo se puede utilizar al final de una transacción.
Los códigos de error y los valores de los mensajes generalmente se establecen creando acciones Constant y recuperando esta información como entradas. A continuación, se muestra un ejemplo de un nodo de acción Fail que recupera sus entradas de dos acciones Constant.

Nota
El código de respuesta y el conjunto de mensajes aparecerán en el log de transacciones cuando la transacción falle.
Advanced
Se utiliza para crear funciones que aún no están disponibles como acciones, o para construir lógica compleja de forma compacta, como desencriptar información de los usuarios o registrar errores en el log de transacciones. También se puede utilizar para interpretar la respuesta de un servicio recuperada con una acción HTTP Request.
Al seleccionar el nodo de acción Script, se abre el editor de script, donde puedes pegar y editar directamente tu script. Consulta el articulo Crea una transacción configurable para ver un escenario en el que se utiliza la acción Script.Crea una transacción configurable

Mediante esta acción, se obtiene un parámetro de negocio del Middleware que se puede utilizar en la transacción.
Con esta acción, puedes invocar un servicio. Esta acción complementa la funcionalidad de la acción Script, ya que puedes crear una solicitud al servicio con la acción Script y luego implementar la solicitud HTTP para consumir el servicio.
Por ejemplo, puedes invocar el servicio interno de BRM y llamar a cualquiera de sus API. Con una acción Script, estableces el punto de conexión con la URL, el método, los encabezados y un cuerpo con todos los parámetros que envías al servicio. Luego, con la acción HTTP Request, ejecutas la llamada al servicio que devolverá un archivo .json con los resultados. Siempre se necesita una acción Script o un proceso lambda para interpretar la respuesta de la solicitud HTTP.

Con esta acción, se establece un código de respuesta para una transacción, según el resultado de la operación, y se guarda el valor en el log de transacciones. También se puede finalizar la ejecución de la transacción.
Mediante esta acción, puedes configurar un código de respuesta, previamente creado en Middleware, para registrar el número 10, que recibe la respuesta de la transacción. El mensaje que se muestra al usuario se almacena en el número de registro 11.
A diferencia de la acción Fail, esta acción se puede utilizar en cualquier paso de la transacción.
Funciones
Con esta acción, puedes realizar operaciones relacionadas con valores de fecha. Los resultados pueden estar en formato numérico o de fecha.
Con esta acción, puedes realizar funciones matemáticas entre valores.
Con esta acción, puedes realizar diversas acciones genéricas entre datos, transformando valores según el tipo de operación seleccionada.
Con esta acción, puedes comparar dos valores booleanos con las funciones and, or y not.