Recorre un array
Ve a continuación un ejemplo sobre cómo construir un proceso lambda para recorrer una lista de depósitos a plazo fijo y calcular la cantidad acumulada de dinero para cada tipo de moneda. Ten en cuenta que, como los procesos varían según la funcionalidad que desees construir y los requisitos del cliente, es posible que encuentres diferentes enfoques sobre cómo crear un proceso similar.
Considera el siguiente escenario: Necesitas construir un proceso lambda para recorrer un array que contenga una lista de depósitos a plazo fijo para calcular la cantidad acumulada de dinero de los depósitos en dólares y los depósitos en pesos argentinos. Para hacerlo, primero, debes ejecutar una transacción para obtener la lista de depósitos a plazo fijo del usuario. Luego, debes recorrer cada fila de la tabla para obtener el tipo de moneda de cada depósito y su monto. Por último, debe sumarlos y almacenar el número de depósitos para cada moneda, así como el monto acumulado para cada moneda en diferentes registros.
Prerrequisitos
Para este ejemplo, ten en cuenta que necesitas usar dos elementos:
Una transacción que devuelve la información sobre los depósitos a plazo fijo del usuario. Para saber cómo crear la transacción, consulta Crear una transacción configurable;
La pantalla donde se muestra la información de depósitos a plazo fijo.
Nota
Aunque la pantalla no es indispensable para crear el proceso lambda, debes tenerla definida de antemano para completar la configuración del proceso.
Cómo construir un proceso lambda para recorrer una lista de depósitos a plazo fijo y calcular la cantidad acumulada de dinero para cada tipo de moneda
Ve a Branch Edition > Processes.
En la pestaña Lambda Processes, haz clic en + New lambda process. Se abre el editor de procesos lambda.
En la pestaña Process Basic Info que se abre por defecto, completa la información sobre el proceso que estás construyendo.
En el campo Name, agrega un nombre al proceso lambda que represente su funcionalidad. Para este ejemplo, ingresa Get fixed-term deposits accumulated amout from array.
En el campo Description, agrega 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 rastrearla fácilmente. Para este ejemplo, ingresa Obtains fixed-term deposits accumulated amount of money in dollars and in Argentine pesos from array returned by trx 9995.
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, introduce deposits
Ahora, puedes comenzar a arrastrar bloques desde el panel izquierdo al canvas para construir tu proceso. Sigue las instrucciones a continuación para ejecutar una transacción que obtenga la lista de depósitos a plazo fijo del usuario, recorrer la tabla que contiene la lista de depósitos a plazo fijo del usuario para obtener su tipo de moneda y cantidad, y suma y almacenar los resultados obtenidos en registros para mostrarlos en pantalla.
Ejecuta una transacción para obtener la lista de depósitos a plazo fijo del usuario
Primero, define la transacción que devuelve la lista de depósitos a plazo fijo del usuario como una variable. Para hacerlo, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Variables o escribe variables 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, introduce TRX_GET_FIXED_TERM.
A continuación, busca el bloque set variable to, arrástralo al canvas y conéctalo al bloque on start.
Selecciona la variable TRX_GET_FIXED_TERM en el menú desplegable de variables.
Luego, busca la transacción creada para obtener la lista de depósitos a plazo fijo del usuario. Para este ejemplo, busca el código de transacción 9995. Arrastra el bloque transaction al canvas y conéctalo al bloque set variable to.
Buenas prácticas
Guarda la transacción como una variable para mejorar la legibilidad del proceso lambda y poder reutilizar fácilmente la transacción dentro del proceso lambda tantas veces como necesites.
Luego, para ejecutar la transacción, dirígete a la lista de bloques y busca la categoría de bloques Transactions o escribe transactions en la barra de búsqueda.
Haz clic para abrir la categoría y ver las funciones disponibles. Luego, arrastra el bloque execute transaction al canvas y conéctalo al bloque on start debajo del bloque set variable to.
Luego, ve a la lista de bloques y busca la variable TRX_GET_FIXED_TERM en la categoría de bloques Variables. Conéctala al bloque execute transaction.
Recorre el array para obtener el tipo de moneda y el monto del depósito, y sumarlos
Una vez que hayas ejecutado la transacción, debes recorrer cada fila del array devuelto por la transacción para obtener los detalles de cada depósito a plazo fijo. Luego, suma la cantidad de depósitos generados en pesos argentinos y en dólares, así como la cantidad acumulada de dinero en cada moneda. Para hacerlo, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Loops o escribe Loops en la barra de búsqueda.
Haz clic para abrir la categoría y ver las funciones disponibles. Arrastra el bloque for element al canvas y conéctalo al bloque on start debajo del bloque execute transaction. El bloque de bucle repite la ejecución de las acciones definidas dentro de su ranura en cada elemento de la lista, en este caso, en cada depósito.
Crea una nueva variable con el nombre row y conéctala a la ranura del primer valor del bloque for element.
Completa la segunda ranura de valor del bloque for element con un bloque array table y completa su valor con el número del array requerido. Para este ejemplo, introduce 1000, que es el registro de salida de la transacción que contiene la lista de depósitos a plazo fijo del usuario.
Luego, 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 las funciones disponibles. Arrastra el bloque condicional if then else al canvas y conéctalo al bloque for element. Este bloque te permitirá recorrer la lista y determinar si el depósito a plazo fijo está en pesos argentinos.
Arrastra el bloque de comparación (" ") = (" ") de la categoría de bloques Branch al canvas y conéctalo a la ranura de valor del bloque if then else.
Arrastra el bloque get value at de la categoría List al canvas y conéctalo a la ranura del primer valor del bloque de comparación.
Completa la ranura del primer valor del bloque con la variable row y la ranura del segundo valor con el valor que contiene el tipo de moneda dentro del array. Para este ejemplo, introduce el valor 2.
Completa el bloque de comparación con el valor que representa el tipo de moneda que deseas obtener. Para este ejemplo, ingresa 80, que representa pesos argentinos.
Luego, define las acciones a realizar si se cumple la condición definida anteriormente, es decir, si el depósito a plazo fijo está en pesos argentinos. Para hacerlo, sigue estos pasos:
Para obtener el número de depósitos generados en pesos argentinos sumando cada depósito al número total de depósitos en esa moneda, arrastra el bloque change by de la categoría Variables al canvas y conéctalo a la primera ranura de bloque condicional if then else.
Crea una nueva variable con el nombre fixedTermsARS y conéctala a la primera ranura del bloque change by.
Ingresa 1 en la segunda ranura del bloque change by para agregar un depósito a plazo fijo al recuento si se cumple la condición previamente definida.
Luego, debes obtener el monto acumulado de dinero en pesos argentinos sumando el monto de cada depósito al total. Arrastra otro bloque change by desde la categoría de bloques Variables al canvas y conéctalo a la primera ranura de bloque condicional if hten else debajo del bloque change by anterior.
Crea una nueva variable con el nombre amountARS y conéctala a la primera ranura del bloque change by.
Arrastra el bloque parse to number de la categoría de bloques Text al canvas y conéctalo a la segunda ranura del bloque change by.
Arrastra el bloque get value at desde la categoría List al canvas y conéctalo a la ranura de valor del bloque parse to number.
Completa la primera ranura de valor con la variable row y la segunda ranura de valor con el valor que contiene la cantidad de pesos argentinos correspondiente al depósito a plazo fijo. Para este ejemplo, introduce el código 3.
A continuación, define una condición alternativa para aquellos casos en los que no se cumple la condición definida anteriormente. Esta condición te permitirá revisar la lista y determinar si el depósito a plazo fijo está en dólares. Para hacerlo, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloque Branch o escribe branch en la barra de búsqueda.
Sugerencia
Dado que la estructura del bloque if then else y el bloque if then es similar, puedes duplicar el bloque configurado if then else, quitarla ranura else y reemplazar sus valores por los definidos en los pasos i y j para acelerar el proceso de construcción.
Haz clic para abrir la categoría y ver las funciones disponibles. Arrastra el bloque condicional if then al canvas y conéctalo a la segunda ranura del bloque condicional if then else.
Arrastra el bloque de comparación (" ") = (" ") de la categoría de bloque Branch al canvas y conéctalo a la ranura de valor del bloque if then.
Arrastra el bloque get value at de la categoría List al canvas y conéctalo a la ranura del primer valor del bloque de comparación. Completa la ranura del primer valor del bloque con la variable row y la ranura del segundo valor con el valor que contiene el tipo de moneda dentro del array. Para este ejemplo, introduce el valor 2.
Completa el bloque de comparación con el valor que representa el tipo de moneda que deseas obtener. Para este ejemplo, introduce 2, que representa dólares.
Luego, define las acciones a realizar si se cumple la nueva condición definida, es decir, si el depósito a plazo fijo está en dólares. Para hacerlo, sigue estos pasos:
Para sumar el número de depósitos generados en dólares sumando cada depósito al número total de depósitos en esa moneda, arrastra el bloque change by de la categoría de bloques Variables al canvas y conéctalo a la ranura de bloques condicional if then.
Crea una nueva variable con el nombre fixedTermsUSD y conéctala a la primera ranura del bloque change by.
Ingresa 1 en la segunda ranura del bloque change by para agregar un depósito a plazo fijo al recuento si se cumple la condición previamente definida.
Luego, para obtener la cantidad acumulada de dinero en dólares sumando la suma de cada depósito al total, arrastra otro bloque change by desde la categoría de bloques Variables al canvas y conéctalo a la ranura de bloque condicional if then, debajo del bloque anterior change by.
Crea una nueva variable con el nombre amountUSD y conéctala a la primera ranura del bloque change by.
Arrastra el bloque parse to number de la categoría de bloques Text al canvas y conéctalo a la segunda ranura del bloque change by.
Arrastra el bloque get value at desde la categoría List al canvas y conéctalo a la ranura de valor del bloque parse to number. Completa la primera ranura de valor del bloque con la variable row y la segunda ranura con el valor que contiene la cantidad de dólares correspondiente al depósito a plazo fijo. Para este ejemplo, introduce el código 3.
Almacena los resultados obtenidos en registros para mostrar en pantalla
Por último, es necesario almacenar los resultados obtenidos en los pasos anteriores en registros que se mostrarán en pantalla. Para hacerlo, sigue estos pasos:
Ve a la lista de bloques y busca la categoría de bloques Registers o escribe registers en la barra de búsqueda.
Haz clic para abrir la categoría y ver las funciones disponibles. Arrastra el bloque save register with value al canvas y conéctalo al bloque on start debajo del bloque condicional if then else.
Define el registro donde se almacenará el texto. Para este ejemplo, escribe 2000. Este registro se agregará al componente de pantalla donde se mostrará el valor guardado.
Completa la segunda ranura de valor save register with value con la variable fixedTermsARS.
Repite los pasos anteriores para guardar los registros 2001, 2002 y 2003 con las variables amountARS, fixedTermsUSD y amountUSD, respectivamente. Dado que la estructura de estos bloques y la anterior es la misma, puedes duplicar el primer bloque save register with value y reemplazar sus valores por los nuevos para acelerar el proceso de construcción.
Antes de guardar, puedes ejecutar el proceso en el simulador para probar la lógica del proceso lambda 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 nuevamente para finalizar el proceso de creación. El proceso lambda creado está listo para ser invocado desde la pantalla donde se muestra la información de depósitos a plazo fijo.