Curso intensivo 101
10 Módulos
5 Semanas

Ciclos. Importación de archivos Excel

Haga clic para copiar

Utilizar los ciclos en el proceso de negocio. Leer datos de los archivos de Excel.


Para entender el proceso posterior, es necesario divagar un poco en la teoría y comprender el principio de los ciclos. Anteriormente, todos nuestros procesos iban sólo hacia adelante. Podían elegir una bifurcación específica (en el If-Else y Switch ), pero sabíamos con certeza que cada bloque se ejecutaría sólo una vez; no habría vuelta atrás.

Ciclos

Los ciclos ofrecen la posibilidad de repetir una determinada sección varias veces. El proceso se crea para que la secuencia de bloques seleccionada se ejecute una y otra vez. Hasta que se cumpla la condición para terminar el bucle.

AppMaster le ofrece la posibilidad de utilizar tres tipos diferentes de ciclos. El principio de su funcionamiento es absolutamente el mismo. La condición de finalización del bucle es lo único que los distingue entre sí.

  • Loop. El más sencillo de todos los ciclos. Su parámetro Times (Integer) parámetro establece un valor fijo para el número de veces que se debe ejecutar el bucle dado.
  • While loop. Un bucle que se ejecutará hasta que se cumpla una determinada condición. Esta condición se especifica en el parámetro Condition (Boolean) parámetro. Al principio de cada bucle, se comprueba el valor de Condition; si es True, entonces el bucle se ejecuta; si es False, entonces el bucle se detiene. El parámetro Limit (Integer) establece el límite del número de repeticiones del bucle para garantizar que el bucle no se ejecute eternamente. Cuando se alcanza, el bucle finaliza, independientemente del valor de Condition.
  • For each loop. Bucle diseñado para trabajar con arrays. Toma un array como entrada y permite realizar una determinada operación sobre cada elemento del array. Se ejecuta tantas veces como elementos tenga el array.

Cada ciclo tiene dos flujos de salida.

  • Loop Body. El propio cuerpo del bucle. Ese proceso, que se repetirá el número de veces necesario.
  • Completed. El hilo que se ejecutará cuando el bucle termine. Especifica qué hacer a continuación una vez finalizado el bucle. Por cierto, cualquier ciclo puede completarse a la orden sin esperar a que se cumplan las condiciones iniciales. Para ello, basta con utilizar el bloque Break Loop en el lugar adecuado. Este transferirá inmediatamente el flujo a Completed.

Read XLSX File

Para analizar el archivo xlsx, utilizaremos el Read XLSX File bloque. Su principio de funcionamiento es casi similar al del For each loop bloque. Representa el archivo de la tabla como una matriz de cadenas. Y cada fila, a su vez, es también un array, pero ya un array de columnas de la fila dada.


El propio archivo xlsx se presenta de forma similar. La primera columna contiene el nombre de la sección, y la segunda la información que contiene esta sección. Al mismo tiempo, no conocemos de antemano la línea en la que se escribe la información; puede aparecer en cualquier lugar arbitrario. En este ejemplo, la biografía se indica en la segunda línea, y el login en la octava, pero las líneas y el orden en que se escriben pueden ser cualquiera.

El proceso comercial comienza recibiendo un archivo como parámetro de entrada. Hay que tener en cuenta que lo que se transmite es el tipo de datos del fichero, es decir, el ID del fichero, y no el fichero completo. Pasamos el mismo archivo al Read XLSX File bloque.


Each row, en este caso, es un análogo de Loop Body. Esto significa que el bucle se ejecutará tantas veces como filas tenga el fichero xlsx. Al mismo tiempo, en cada ciclo, recibimos información sobre qué fila se está procesando ahora (Row number), así como qué columnas hay en esta fila (Row columns).

Nuestra tarea es comprobar la primera celda de cada fila. Esperamos encontrar una celda que diga "Login" o "Bio". De esta manera, entenderemos que hemos encontrado una columna con la información necesaria.

Para ello, necesitamos un bloque Array Element con un índice 0. Así obtenemos el contenido de la primera celda de la cadena. Después, utilizamos el bloque Switch para encontrar la coincidencia deseada (Login, Bio).

Si no se encuentra dicha coincidencia, entonces el bucle pasa a la siguiente iteración, comprobando la siguiente fila. Si se encuentra, entonces entendemos que la segunda celda de esta fila debe contener la información que necesitamos y usamos el bloque Array Element bloque de nuevo (pero con el índice 1) para obtener esta información.

Sólo queda guardar esta información. Al fin y al cabo, si no lo hacemos de inmediato, el ciclo continuará y los datos recibidos se perderán.

Variables

La mejor solución en esta situación sería utilizar variables. Su significado radica en que ciertos valores no se transfieren inmediatamente de un bloque a otro, sino que se almacenan en la memoria y se utilizan si es necesario.

Para ello existen dos bloques:

  • Variable bloque. Puede ser cualquier número, cadena o incluso un array de objetos. Es importante entender que este bloque en sí no hace nada; no tiene parámetros de entrada. Sólo sirve para anunciar el hecho de que se ha asignado un lugar en la memoria para escribir algún valor, con la posibilidad de volver a referirse a él más adelante y averiguar este valor.
  • El bloque Set Variable está diseñado para escribir un nuevo valor en una variable.

En nuestro caso, definiremos dos variables de tipo String y escribiremos en ellas los valores encontrados, en un lugar Login, y en el segundo Bio. Al final del bucle, sólo tenemos que pasar el valor de estas variables al bloque final.


Ahora es el momento de crear un endpoint para el proceso de negocio terminado y, por lo tanto, hacer que esté disponible para su uso en el front-end de la aplicación web.


Resultado final

Como resultado el proceso de negocio debería ser este:


Hay toques finales para completar la creación de la aplicación. Volvamos al proceso de negocio del front-end y terminémoslo. Necesitamos:

  • Pasar el modelo de archivo xlsx para guardarlo en el servidor.
  • Expandir el resultado y obtener el ID del archivo.
  • Pasar este ID al endpoint creado anteriormente POST /xlsx-data/
  • Utilizar los datos recibidos para mostrarlos en los campos correspondientes (y también para restablecer el parámetro Disable, abriendo la posibilidad de edición).

Si todo se ha hecho correctamente, la versión final debería tener este aspecto después de cargar la información de los archivos

Was this article helpful?
¿Sigue buscando una respuesta?
Únase a la Comunidad