Procesos lambda inline
Importante
Para usar esta funcionalidad, debes actualizar las versiones de los canales mobile y web.
Un proceso lambda inline es un tipo de proceso que se utiliza para ejecutar bloques de lógica directamente desde otro proceso lambda. Permite ejecutar un proceso lambda dentro de otro proceso en curso, sin alterar la secuencia de acciones del proceso invocador. Esto significa que, una vez que finaliza la ejecución del proceso inline, el flujo del proceso invocador continúa sin interrupciones. Esto resulta en la optimización del rendimiento y la simplificación del proceso de construcción.
Los procesos lambda inline se construyen desde el mismo editor visual que los procesos lambda ordinarios, lo que facilita su integración y gestión dentro de otros procesos. Para crear un proceso lambda inline, ve a la lista de procesos y haz clic en + Create. En la ventana que se abre, selecciona Inline process. Se abrirá el editor de procesos lambda, donde podrás construir el proceso inline utilizando bloques, al igual que en un proceso lambda ordinario. Una vez creado, puedes invocar ese proceso inline desde cualquier otro proceso lambda utilizando el bloque execute inline lambda. Para más información, consulta Crea e invoca un proceso lambda inline.
Algunos aspectos importantes de los procesos lambda inline son:
Se ejecutan cuando son invocados, no al final del flujo del proceso lambda invocador, como ocurre con otros bloques Next.
Pueden invocar otros procesos lambda inline.
No incluyen bloques de acción Next, excepto aquellos utilizados para invocar otro proceso Lambda inline (bloque execute inline lambda) o para definir la siguiente acción de una transacción asíncrona (bloque execute async transaction () with next (" ") and message (" ")).
Pueden llamar a una transacción o a una call API. El manejo de errores dentro de la invocación a la transacción interrumpe la lógica del proceso inline y regresa al proceso invocador. De lo contrario, si el error es gestionado desde la app, interrumpe toda la lógica (tanto la del proceso inline como la del proceso invocador o los procesos invocadores). Para más información, consulta Manejo de errores.
Pueden ser invocados desde otras entidades como cualquier otro proceso lambda (por ejemplo, desde una pantalla). Para más información, consulta Invoca un proceso.
No están incluidos en el listado de procesos del bloque request next lambda existente. Este bloque incluye todos los procesos lambda excepto los procesos inline, que se invocan con el bloque execute inline lambda. Para más información, consulta Listado de bloques.
Crea e invoca un proceso lambda inline
Observa a continuación un ejemplo de cómo construir un proceso lambda inline para generar una OTP (contraseña de un solo uso) que funciona como segundo factor de autenticación, y otro proceso lambda que ejecuta una transacción monetaria después de que se ejecute el proceso inline y se valide la identidad del usuario. Ten en cuenta que, dado que los procesos varían dependiendo de la funcionalidad que quieras crear y de los requisitos del cliente, puedes encontrar diferentes enfoques sobre cómo crear un proceso lambda similar.
Considera este escenario: Necesitas crear un proceso que le permita al usuario transferir dinero a otra cuenta bancaria. Pero, antes de ejecutar la transferencia de dinero, deseas asegurarte de que la persona que está usando la app es efectivamente propietaria de la cuenta bancaria y está autorizada a ejecutar dicha operación. Para hacerlo, primero, debes crear el proceso inline que ejecuta la call API necesaria para generar la OTP que funciona como segundo factor de autenticación. Luego, necesitas crear otro proceso lambda para ejecutar la transacción monetaria. Desde este proceso, también invocarás el proceso lambda inline creado previamente para generar la OTP y validar la identidad del usuario. Así, después de que se ejecuta el proceso lambda inline y se valida la identidad del usuario, el flujo del proceso invocador continúa con la ejecución de la transacción monetaria.
Prerrequisitos
Para este ejemplo, se considera el uso de:
una transacción que ejecuta transferencias de dinero. Para aprender a crear esta transacción, consulta Crea una transacción configurable;
una call API que genera OTPs (contraseñas de un solo uso);
la pantalla en la que se realizan operaciones como transferencias de dinero;
un proceso lambda que contiene la lógica con el comportamiento de la app en caso de que la transacción falle.
y un proceso lambda que contiene la lógica para mostrar el recibo de la transacción si esta es exitosa.
Nota
Aunque la pantalla no es indispensable para crear el proceso lambda, se sugiere tenerla lista de antemano para completar la configuración del proceso.

Ve a Logic en el menú superior (☰) y haz clic en Processes.
En la pestaña Lambda, haz clic en + Create.
En el modal Create que se abre, puedes elegir entre un proceso lambda ordinario (Process) y un procesos lambda inline (Inline process). Para este ejemplo, haz clic en Inline process. Se abre el editor de procesos lambda y el encabezado indica que estás trabajando en un proceso lambda inline.
En el panel Process Basic info que se abre de forma predeterminada, completa la información sobre el proceso lambda inline que estás construyendo.
En el campo Name, agrega un nombre al proceso lambda inline que represente su funcionalidad. Para este ejemplo, configura TKN_GENERATE_OTP.
En el campo Description, añade un texto breve que explique el objetivo de la lógica creada. Si hay una call API incluida en el proceso, agrega su nombre a la descripción del proceso para rastrearlo fácilmente. Para este ejemplo, configura Genera OTP con VTToken API.
En el campo Tags, agrega palabras clave para que tú y tu equipo puedan agrupar fácilmente los procesos según su funcionalidad. Para este ejemplo, configura token y OTP.
Primero, configura la función de la call API que genera la OTP como variable. Para ello, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Variables o escribe variable en la barra de búsqueda.
Haz clic para abrir la categoría y haz clic en Make a Variable... para crear una nueva.
Define el nombre de la variable y haz clic en Ok para finalizar el proceso de creación. Para este ejemplo, configura api_generate_OTP_params.
Luego, busca el bloque set variable to, arrástralo al canvas y conéctalo al bloque on start.
Selecciona la variable api_generate_OTP_params en el menú desplegable.
Luego, busca la función de la call API que genera la OTP. Para este ejemplo, busca el bloque vttoken api generate otp. Arrastra el bloque de la función al canvas y conéctalo al bloque set variable to.
Buenas prácticas
Establecer la función de la call API como variable se considera una buena práctica, ya que mejora la legibilidad del proceso lambda y te permite reutilizar fácilmente la función dentro del proceso lambda tantas veces como sea necesario.
Luego, configura los parámetros de entrada de la función de la call API. Para ello, sigue estos pasos:
Busca la categoría de bloques Registers en el menú de bloques de la izquierda o escribe register en la barra de búsqueda. Luego, haz clic para abrir la categoría, arrastra el bloque register text al canvas y conéctalo al hueco para insertar valores del parámetro challenge.
Completa el bloqueregister text con 118, el número de registro que corresponde al parámetro challenge.
Arrastre el bloque register text al canvas y conéctalo al hueco para insertar valores del parámetro pin.
Completa el bloque register text con 121, el número de registro que corresponde al parámetro pin.
Arrastra el bloque register text al canvas y conéctalo al hueco para insertar valores del parámetro session data.
Completa el bloque register text con 122, el número de registro que corresponde al parámetro session data.
Arrastre el bloque register text al canvas y conéctalo al hueco para insertar valores del parámetro crc validation.
Completa el bloque register text con 141, el número de registro que corresponde al parámetro crc validation.
Arrastra el bloque register text al canvas y conéctalo al hueco para insertar valores del parámetro transform session data.
Completa el bloque register text con 142, el número de registro que corresponde al parámetro transform session data.
En el parámetro ocra suit, introduce el valor definido para tu proyecto.
Por último, arrastra el bloque register text al canvas y conéctalo al hueco para insertar valores del parámetro flag clear password.
Completa el bloque register text con 125, el número de registro que corresponde al parámetro flag clear password.
Una vez que hayas configurado la función de la call API, define las acciones a seguir si la ejecución de la call API es exitosa y si no lo es. Si la ejecución de la call API es exitosa, el valor true se almacenará en un registro. De lo contrario, se almacenará el valor falso. Para ello, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Branch o escribe branch en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque condicionalif then else al canvas y conéctalo al bloque on start debajo del bloqueset variable to.
Ve a la lista de bloques y busca la categoría de bloques de Call APIs o escribe call apis en la barra de búsqueda. Luego, haz clic para abrir la categoría y ver los bloques disponibles, arrastra el bloque execute call api and response success al canvas y conéctalo al hueco para insertar valores del bloque if then else.
Luego, busca la variable api_generate_OTP_params en la categoría Variables y arrástrala al bloque execute call api and response success.
Para definir la acción a seguir si la ejecución de la call API es exitosa, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Registers o escribe register en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloquesave register with value al canvas y conéctalo a la primera ranura del bloque if then else.
Define el registro donde se almacenará el resultado. Para este ejemplo, introduce 10000. El proceso invocador tomará el valor de este registro para definir el resultado de la call API.
Por último, para establecer el valor del bloque como true, ve a la lista de bloques y busca la categoría Text o escribe text en la barra de búsqueda. Luego, haz clic para abrir la categoría y ver los bloques disponibles, arrastra el bloque " " al canvas y conéctalo al hueco para insertar valores del bloque save register with value. Completa el bloque de texto con true.
Para definir las acciones a seguir si la ejecución de la call API no es exitosa, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Registers o escribe register en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque save register with value al canvas y conéctalo a la segunda ranura del bloque if then else.
Define el registro donde se almacenará el resultado. Para este ejemplo, introduce 10000. El proceso invocador tomará el valor de este registro para definir el resultado de la call API.
Para establecer el valor del bloque como false, ve a la lista de bloques y busca la categoría Text o escribe text en la barra de búsqueda. Luego, haz clic para abrir la categoría y ver los bloques disponibles, arrastra el bloque " " al canvas y conéctalo al hueco para insertar valores del bloque save register with value. Completa el bloque de texto con false.
Finalmente, define el mensaje de error que se mostrará cuando falle la ejecución de la call API. Para ello, ve a la lista de bloques y busca la categoría de bloques Registers o escribe register en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque save register with value al canvas y conéctalo a la segunda ranura del bloque if then else debajo del bloque save register with value previamente configurado.
Completa el primero hueco para insertar valores del bloque save register with valuecon 825, el número de registro que corresponde a los mensajes genéricos.
Ve a la lista de bloques y busca la categoría Text o escribe text en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque join al canvas y conéctalo al segundo hueco para insertar valores del bloquesave register with value .
Escribe el mensaje de error que se mostrará si la call API falla en el primer hueco para insertar valores del bloque join. Para este ejemplo, escribe "Error generating OTP".
Busca la categoría de bloques Registers en el menú de bloques de la izquierda o utiliza la barra de búsqueda. Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque register text al canvas y conéctalo al segundo hueco para insertar valores del bloque join.
Completa el bloque register text con 112, el número de registro que corresponde al resultado de la call API.
Antes de guardar, puedes ejecutar el proceso inline en el simulador para probar la lógica del proceso y asegurarte de que funciona como se espera. Este paso es opcional.
Haz clic en Save en la barra de acciones.
Se abrirá el modal para agregar el mensaje de commit, completa la descripción de los últimos cambios realizados y, si corresponde, los detalles del ticket de JIRA relacionado, luego haz clic en Save para finalizar el proceso de creación. El proceso lambda inline creado está listo para ser invocado desde el proceso lambda que ejecuta una transacción monetaria después de que se verifique la identidad del usuario.

Ve a Logic en el menú superior (☰) y haz clic en Processes.
En la pestaña Lambda, haz clic en + Create.
En el modal Create que se abre, puedes elegir entre un proceso lambda ordinario (Process) y un procesos lambda inline (Inline process). Para este ejemplo, haz clic en Process. Se abre el editor de procesos lambda y el encabezado indica que estás trabajando en un proceso lambda ordinario.
En la pestaña Process Basic Info que se abre de forma predeterminada, completa la información sobre el proceso lambda que estás construyendo.
En el campo Name, agrega un nombre al proceso lambda que represente su funcionalidad. Para este ejemplo, configura TRSF_TRX_CBU.
En el campo Description, añade un texto breve que explique el objetivo de la lógica creada. Si hay una transacción incluida en el proceso, agrega su código a la descripción del proceso para rastrearlo fácilmente. Para este ejemplo, configuraEjecuta transferencia de dinero con la trx 1068.
En el campo Tags, agrega palabras clave para que tú y tu equipo puedan agrupar fácilmente los procesos según su funcionalidad. Para este ejemplo, configura transferencia.
Luego, para borrar el registro que almacena el resultado de la call API, busca la categoría de bloques Registers en el menú de bloques de la izquierda o utiliza la barra de búsqueda. Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque clean register al canvas y conéctalo al bloque on start.
Define el registro donde se almacena el resultado de la call API. Para este ejemplo, introduce 10000.
Para invocar el proceso lambda inline que ejecuta la call API para generar la OTP, busca la categoría Next en el menú de bloques de la izquierda o utiliza la barra de búsqueda. Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque execute inline lambda al canvas y conéctalo al bloque on start debajo del bloque clean register.
Selecciona el proceso lambda inline creado previamente para ser invocado y ejecutado. Para este ejemplo, selecciona TKN_GENERATE_OTP.
Luego, configura como función la transacción que ejecuta la transferencia de dinero. Para ello, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Functions.
Haz clic para abrir la categoría y haz clic en Make a Function... para crear una nueva.
Establece el nombre de la función y haz clic en Done para finalizar el proceso de creación. Para este ejemplo, introduce executeTransfer.
Buenas prácticas
Establecer la transacción como una función se considera una buena práctica ya que mejora la legibilidad del proceso lambda.
Una vez creada la función, configura la transacción que ejecuta la transferencia de dinero como variable. Para ello, sigue estos pasos:
Busca la categoría de bloques Variables en el menú de bloques de la izquierda o utiliza la barra de búsqueda.
Haz clic para abrir la categoría y haz clic en Make a Variable... para crear una nueva.
Define el nombre de la variable y haz clic en Ok para finalizar el proceso de creación. Para este ejemplo, establece trx_transf_params.
Luego, busca el bloque set variable to, arrástralo al canvas y conéctalo a la función executeTransfer.
Selecciona la variable trx_transf_params en el menú desplegable de variables.
Luego, busca la transacción creada para ejecutar la transferencia. Para este ejemplo, busca el código de transacción 1068. Arrastra el bloque de transacciones al canvas y conéctalo al bloque set variable to.
Para ejecutar la transacción que ejecuta la transferencia de dinero, sigue estos pasos:
Busca la categoría de bloques Transactions en el menú de bloques de la izquierda o utiliza la barra de búsqueda. Haz clic para abrir la categoría y ver los bloques disponibles.
Arrastra el bloque execute transaction al canvas y conéctalo a la función executeTransfer debajo del bloque set variable to.
Busca la variable trx_transf_params en la categoría de bloque Variables y arrástrala al bloque execute transaction.
Una vez que hayas configurado la función de la transacción, define las acciones a seguir si la ejecución de la call API es exitosa y si no lo es. Si la call API es exitosa, se ejecuta la transacción y también un proceso lambda que muestra el recibo de la transacción. De lo contrario, se ejecuta otro proceso lambda que muestra un mensaje de error. Para ello, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Branch o escribe branch en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque condicional if then else al canvas y conéctalo al bloque on start debajo del bloque execute lambda inline.
Arrastra el bloque de comparación (" ") = (" ") de la categoría de bloques Branch al canvas y conéctalo al hueco para insertar valores del bloque if then else.
Busca la categoría de bloques Registers en el menú de bloques de la izquierda o utiliza la barra de búsqueda. Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque register text al canvas y conéctalo al primer hueco para insertar valores del bloque de comparación.
Define el registro donde se almacena el resultado de la call API. Para este ejemplo, introduce 10000.
Finalmente, establece el segundo valor del bloque como true. Para ello, ve a la lista de bloques y busca la categoría Text o escribe text en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque " " al canvas y conéctalo al segundo hueco para insertar valores del bloque de comparación. Completa el bloque de texto con true.
Para definir la acción a seguir si la ejecución de la call API es exitosa, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Functions o escriba function en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque call executeTransfer al canvas y conéctalo a la primera ranura del bloque condicional if then else.
Por último, ve a la lista de bloques y busca la categoría Next o escribe next en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque request next lambda al canvas y conéctalo a la primera ranura del bloque condicional if then else debajo del bloque call executeTransfer.
Selecciona el proceso lambda que muestra el recibo de la transacción.
Para definir las acciones a seguir si la ejecución de la call API no es exitosa, sigue estos pasos:
Ve a la lista de bloques y busca la categoría Next o escribe next en la barra de búsqueda.
Haz clic para abrir la categoría y ver los bloques disponibles. Arrastra el bloque request next lambda al canvas y conéctalo a la segunda ranura del bloque condicional if then else.
Selecciona el proceso lambda que muestra el mensaje de error de la transacción.
Antes de guardar, puedes ejecutar el proceso en el simulador para probar la lógica del proceso y asegurarte de que funciona como se espera. Este paso es opcional.
Haz clic en Save en la barra de acciones.
Se abrirá el modal para agregar el mensaje de commit, completa la descripción de los últimos cambios realizados y, si corresponde, los detalles del ticket de JIRA relacionado, luego haz clic en Save para finalizar el proceso de creación. El proceso lambda creado está listo para ser invocado desde la pantalla donde se realizan operaciones como transferencias de dinero.