CSV ( Comma Separated Values) es un formato de almacenamiento de tablas en el que los valores de las celdas están separados por el símbolo ",". En lugar de "," el separador puede ser utilizado otro carácter. Sin embargo, AppMaster requiere una coma.

Es importante asegurarse de que este carácter no aparezca dentro de la celda. De lo contrario, los datos del archivo se leerán incorrectamente.

Primero, cree un modelo de datos donde se guardará la información del archivo CSV. Por ejemplo, vamos a crear un modelo de datos para los vuelos. Contendrá los siguientes campos

DB example

  • flight_no - número de vuelo, en formato entero;
  • destino en formato de cadena;
  • clases - clase de vuelo disponible para este vuelo, formato array[string].

Un ejemplo de un archivo que será importado:

File example

La primera columna contiene flight_nola segunda contiene destinationy la tercera contiene classes.

En la tercera columna, los valores están separados por un punto y coma.

Crear un proceso empresarial

Vaya a la pestaña Business Logic y haga clic en el botón Create Business Process botón .

Creating BP

Este proceso de negocio necesita un archivo CSV, así que añada el campo de archivo al Start bloque.

Creating variable

A continuación, necesitamos el bloque Read CSV bloque de archivo.

Del mismo modo, puede utilizar los bloques Read XLS file y Read XLSX file para los formatos correspondientes.

Cómo funciona el bloque Read CSV file:

Tiene dos conectores de salida: Each Row y Completed. Cuando el bloque se active, leerá el archivo línea por línea, y cada vez activará el conector Each Row y pasará el número de fila (Row number, empezando por 1) y Row Columns un array de cadenas de todas las columnas de la fila actual.

Pase el archivo desde el bloque Start al bloque Read CSV file bloque:

Read CSV block

A continuación, añada el For Each Loop bloque. Procesará la matriz de cadenas que envía el Read CSV file bloque.

Para Each Loop, al igual que el Read CSV file, procesa cada elemento del array y activa el Loop Body conector para cada uno de ellos.

El campo de salida del índice en el bloque For Each Loop es el número de índice del elemento del array. Empieza por 0.

Conecta todos los conectores:

For each loop block

El siguiente bloque es Switch. Con su ayuda, determinaremos dónde escribir los valores de los diferentes campos.

Switch puede aceptar cualquier tipo de entrada y, en función de ella, puede activar diferentes conectores de salida. El conector Default se activa si el valor de entrada no coincide con ninguno de los conectores creados.

El archivo CSV tiene tres columnas, lo que significa que hay tres valores almacenados en cada array de columnas Row, siempre en el mismo orden:

  1. número;
  2. dirección;
  3. clases.

Por lo tanto, crearemos tres conectores de salida en el Switch bloque 0, 1 y 2 y pasaremos el índice del bloque For Each Loop al bloque Switch bloque.

switch block

La primera columna del archivo contiene el número de vuelo. Pero el For Each Loop bloque lo recibe en el string formato. Por lo tanto, lo convertimos en un número entero con el bloque To integer antes de guardar. Después, lo guardamos en una variable con el bloque Set variable bloque.

to integer block

La segunda columna del archivo contiene la dirección en string formato. Se puede guardar inmediatamente en una variable.

Set variable block

La tercera columna del archivo contiene una lista de clases separadas por punto y coma. El bloque For Each Loop bloque también lo obtiene en el formato de cadena. Por lo tanto, la divide en un array de cadenas. Para ello, utilizamos el bloque Split String bloque. Pasemos una cadena con una lista de clases en ella y pongamos ";" como separador por defecto.

Guardar el valor recibido en una variable.

Split string block

Se termina de configurar un bucle a través de todos los valores de las columnas de cada fila.

Necesitamos crear una entrada de cada línea del archivo. Usamos el conector de salida completado en el bloque For Each Loop y el bloque Make flight para hacerlo. Vamos a transferir a él todas las variables recibidas durante el ciclo.

completed for each loop connector

Ahora guardamos el modelo creado en Make flight utilizando el DB Create flight bloque.

DB create block

Así, cada fila se guarda como un registro en la base de datos.

Ahora tenemos que terminar de procesar el archivo. Utilizaremos el completed conector de salida del bloque Read CSV file y lo conectaremos al bloque End bloque.

completed read csv file

Se termina el PB para importar desde un archivo.

Endpoint configurar

Vaya a la pestaña Endpoints y cree un nuevo punto final.

Creating endpoint

Seleccione el método POST método, establezca la URL dirección, seleccione el Flight groupy el BP creado Import CSV.

Configurar un botón en el frontend

Ahora tenemos que configurar un botón en el frontend para subir el archivo.

Arrastre el elemento File picker elemento al lienzo.

Y configurar el BP para ello:

Utiliza el onSelectfiles disparador. Este disparador recibe los archivos como un array, aunque sólo haya un archivo. Por lo tanto, usaremos el bloque Array Element para obtener un elemento del array. Pongamos el campo índice a 0 para obtener el primer elemento del array.

Ahora guardamos el archivo cargado en la base de datos utilizando el bloque Server request POST /_files/ bloque.

Server request post file

Expanda el archivo resultante utilizando el bloque Expand file bloque.

Expand file block

Ahora pasemos el ID (que en este caso es un archivo) al bloque Server request POST /flight/csv/ bloque.

Using custom endpoint on frontend

Was this article helpful?

AppMaster.io 101 Curso intensivo

10 Módulos
2 Semanas

¿No sabe por dónde empezar? Ponte en marcha con nuestro curso intensivo para principiantes y explora AppMaster de la A a la Z.

Inicio de curso
Development it’s so easy with AppMaster!

Necesitas más ayuda?

Resuelva cualquier problema con la ayuda de nuestros expertos. Ahorre tiempo y concéntrese en crear sus aplicaciones.

headphones

Soporte de contacto

Cuéntenos su problema y le encontraremos una solución.

message

Chat comunitario

Discutir preguntas con otros usuarios en nuestro chat.

Únete a la Comunidad