CSV ( Comma Separated Values) è un formato di memorizzazione di tabelle in cui i valori delle celle sono separati dal simbolo ",". Al posto di "," si può usare un altro carattere di separazione. Tuttavia, AppMaster richiede una virgola.
È importante assicurarsi che questo carattere non si trovi all'interno della cella. In caso contrario, i dati del file verranno letti in modo errato.
Per prima cosa, creare un modello di dati in cui salvare le informazioni del file CSV. Ad esempio, creiamo un modello di dati per i voli. Esso conterrà i seguenti campi:
- flight_no - numero di volo, in formato intero;
- destinazione in formato stringa;
- classi - classe di volo disponibile per questo volo, formato array[stringa].
Un esempio di file che verrà importato:
La prima colonna contiene flight_no, la seconda contiene destinatione la terza contiene classes.
Nella terza colonna, i valori sono separati da un punto e virgola.
Creare un processo aziendale
Passare alla scheda Business Logic e fare clic sul pulsante Create Business Process e fare clic sul pulsante .
Questo processo aziendale ha bisogno di un file CSV, quindi aggiungere il campo file al blocco. Start al blocco.
Successivamente, è necessario il blocco Read CSV file.
Allo stesso modo, è possibile utilizzare i blocchi Read XLS file e Read XLSX file per i formati corrispondenti.
Come funziona il blocco Read CSV file:
Ha due connettori di output: Each Row e Completed. Quando il blocco viene attivato, leggerà il file riga per riga e ogni volta attiverà il connettore Each Row e passerà il numero di riga (numero di riga, a partire da 1) e Colonne riga, un array di stringhe di tutte le colonne della riga corrente.
Passare il file dal blocco Start al blocco Read CSV file al blocco:
Quindi, aggiungere il blocco For Each Loop . Elaborerà l'array di stringhe che invia al Read CSV file blocco.
Per Each Loop, proprio come il blocco Read CSV file, elabora ogni elemento dell'array e attiva il connettore Loop Body per ciascuno di essi.
Il campo di output dell'indice nel blocco For Each Loop è il numero di indice dell'elemento della matrice. Inizia da 0.
Collegare tutti i connettori:
Il blocco successivo è Switch. Con il suo aiuto, determineremo dove scrivere i valori dei diversi campi.
Switch può accettare qualsiasi tipo di input e, a seconda di esso, può attivare diversi connettori di output. Il connettore Default viene attivato se il valore di input non corrisponde a nessuno dei connettori creati.
Il file CSV ha tre colonne, il che significa che ci sono tre valori memorizzati in ogni array Row columns, sempre nello stesso ordine:
- numero;
- direzione;
- classi.
Pertanto, creeremo tre connettori di uscita nei blocchi Switch 0, 1 e 2 e passeremo l'indice dal blocco For Each Loop al blocco Switch al blocco.
La prima colonna del file contiene il numero di volo. Ma il For Each Loop lo riceve nel formato string formato. Pertanto, lo convertiamo in un numero intero utilizzando il blocco To integer prima di salvare. Dopodiché, lo salviamo in una variabile utilizzando il blocco Set variable .
La seconda colonna del file contiene la direzione in formato string formato. Può essere salvata immediatamente in una variabile.
La terza colonna del file contiene un elenco di classi separate da punti e virgola. Il blocco For Each Loop lo ottiene anche in formato stringa. Quindi lo divide in un array di stringhe. Per farlo, si utilizza il blocco Split String . Passiamo una stringa con un elenco di classi e impostiamo ";" come separatore predefinito.
Salvare il valore ricevuto in una variabile.
Viene completata la configurazione di un ciclo attraverso tutti i valori delle colonne di ogni riga.
Dobbiamo creare una voce per ogni riga del file. Utilizziamo il connettore di output completato nel blocco For Each Loop e nel blocco Make flight per farlo. Trasferiamo in esso tutte le variabili ricevute durante il ciclo.
Ora salviamo il modello creato in Make flight utilizzando il blocco DB Create flight .
Ogni riga viene quindi salvata come record nel database.
Ora dobbiamo terminare l'elaborazione del file. Utilizzeremo il connettore completed nel blocco Read CSV file e lo colleghiamo al blocco End blocco.
Il BP per importare da un file è terminato.
Endpoint impostazione
Andare alla scheda Endpoints e creare un nuovo endpoint.
Selezionare il metodo POST , impostare l'indirizzo URL indirizzo, selezionare il Flight groupe il BP creato Import CSV.
Impostazione di un pulsante sul frontend
Ora dobbiamo impostare un pulsante sul front-end per caricare il file.
Trascinare l'elemento File picker sull'area di disegno.
E impostare il BP per esso:
Utilizzare il metodo onSelectfiles . Questo trigger riceve i file come un array, anche se c'è un solo file. Pertanto, utilizzeremo il blocco Array Element per ottenere un elemento dall'array. Impostiamo il campo indice a 0 per ottenere il primo elemento dell'array.
Ora salviamo il file caricato nel database usando il blocco Server request POST /_files/ .
Espandere il file risultante utilizzando il blocco Expand file .
Passare ora l'ID (che in questo caso è un file) al blocco Server request POST /flight/csv/ al blocco.