CSV ( Comma Separated Values) ist ein Tabellenspeicherformat, in dem Zellenwerte durch das Symbol "," getrennt werden. Anstelle von "," kann ein anderes Zeichen als Trennzeichen verwendet werden. Bei AppMaster ist jedoch ein Komma erforderlich.

Es ist darauf zu achten, dass dieses Zeichen nicht innerhalb der Zelle vorkommt. Andernfalls werden die Daten der Datei falsch gelesen.

Erstellen Sie zunächst ein Datenmodell, in dem die Informationen aus der CSV-Datei gespeichert werden sollen. Lassen Sie uns zum Beispiel ein Datenmodell für Flüge erstellen. Es wird die folgenden Felder enthalten:

DB example

  • flight_no - Flugnummer, im Ganzzahlformat;
  • Zielort im String-Format;
  • Klassen - Flugklasse, die für diesen Flug verfügbar ist, Format array[string].

Ein Beispiel für eine Datei, die importiert werden soll:

File example

Die erste Spalte enthält flight_no, die zweite enthält destination, und die dritte Spalte enthält classes.

In der dritten Spalte werden die Werte durch ein Semikolon getrennt.

Einen Geschäftsprozess erstellen

Gehen Sie auf die Registerkarte Business Logic und klicken Sie auf die Schaltfläche Create Business Process Schaltfläche.

Creating BP

Dieser Geschäftsprozess benötigt eine CSV-Datei, also fügen Sie das Dateifeld in den Start Block hinzu.

Creating variable

Als nächstes benötigen wir den Read CSV Datei-Block.

In ähnlicher Weise können Sie die Blöcke Read XLS file und Read XLSX file für die entsprechenden Formate verwenden.

So funktioniert der Read CSV file -Block:

Er hat zwei Ausgangskonnektoren: Each Row und Completed. Wenn der Block aktiviert wird, liest er die Datei Zeile für Zeile, und jedes Mal aktiviert er den Each Row Anschluss und übergibt die Zeilennummer (Row number, beginnend mit 1) und Row Columns ein String-Array aller Spalten der aktuellen Zeile.

Übergeben Sie die Datei vom Start Block an den Read CSV file Block:

Read CSV block

Als nächstes fügen Sie den For Each Loop Block hinzu. Es wird das String-Array verarbeitet, das den Read CSV file blockiert.

Für Each Loopwird, genau wie bei der Read CSV file, verarbeitet jedes Element des Arrays und aktiviert den Loop Body Verbinder für jedes von ihnen.

Das Index-Ausgangsfeld im For Each Loop -Block ist die Indexnummer des Array-Elements. Es beginnt bei 0.

Verbinden Sie alle Anschlüsse:

For each loop block

Der nächste Block ist Switch. Mit seiner Hilfe bestimmen wir, wohin die Werte der verschiedenen Felder geschrieben werden sollen.

Switch kann jede Art von Eingabe akzeptieren und in Abhängigkeit davon verschiedene Ausgabekonnektoren aktivieren. Der Default Konnektor wird aktiviert, wenn der Eingabewert mit keinem der erstellten Konnektoren übereinstimmt.

Die CSV-Datei hat drei Spalten, was bedeutet, dass in jedem Array Row columns drei Werte gespeichert sind, immer in der gleichen Reihenfolge:

  1. Anzahl;
  2. Richtung;
  3. Klassen.

Daher werden wir drei Ausgangskonnektoren im Switch Block 0, 1 und 2 und übergeben den Index aus dem For Each Loop Block an den Switch Block.

switch block

Die erste Spalte in der Datei enthält die Flugnummer. Aber der For Each Loop Block erhält sie im string Format. Daher konvertieren wir sie in eine Ganzzahl mit dem To integer Block vor dem Speichern in eine Ganzzahl um. Danach speichern wir sie in einer Variablen mit dem Set variable Block.

to integer block

Die zweite Spalte in der Datei enthält die Richtung im string Format. Sie kann sofort in einer Variablen gespeichert werden.

Set variable block

Die dritte Spalte in der Datei enthält eine Liste von Klassen, die durch Semikolons getrennt sind. Der For Each Loop Block erhält sie auch im String-Format. Also teilen wir sie in ein Array von Strings auf. Dazu verwenden wir den Split String Block. Übergeben wir eine Zeichenkette mit einer Liste von Klassen und setzen wir ";" als Standardtrennzeichen.

Speichern Sie den empfangenen Wert in einer Variablen.

Split string block

Es wird eine Schleife über alle Spaltenwerte in jeder Zeile eingerichtet.

Wir müssen aus jeder Zeile der Datei einen Eintrag erstellen. Wir verwenden den fertigen Ausgabekonnektor im For Each Loop Block und dem Make flight Block, um dies zu tun. Übertragen wir alle Variablen, die wir während des Zyklus erhalten haben, in diese Datei.

completed for each loop connector

Speichern Sie nun das Modell, das in Make flight unter Verwendung des DB Create flight Block.

DB create block

So wird jede Zeile als ein Datensatz in der Datenbank gespeichert.

Nun müssen wir die Verarbeitung der Datei abschließen. Wir verwenden den completed Ausgangskonnektor im Read CSV file Block und verbinden ihn mit dem End Block.

completed read csv file

Der BP zum Importieren aus einer Datei ist beendet.

Endpoint einrichten

Gehen Sie auf die Registerkarte Endpoints und erstellen Sie einen neuen Endpunkt.

Creating endpoint

Wählen Sie die POST Methode, stellen Sie die URL Adresse ein, wählen Sie die Flight groupund den erstellten BP Import CSV.

Einrichten einer Schaltfläche auf dem Frontend

Nun müssen wir eine Schaltfläche auf dem Frontend einrichten, um die Datei hochzuladen.

Ziehen Sie das File picker Element auf die Leinwand.

Und richten Sie den BP dafür ein:

Verwenden Sie den onSelectfiles Auslöser. Dieser Trigger empfängt Dateien als Array, auch wenn nur eine Datei vorhanden ist. Daher werden wir den Array Element Block verwenden, um ein Element aus dem Array zu erhalten. Wir setzen das Indexfeld auf 0, um das erste Element aus dem Array zu erhalten.

Speichern Sie nun die hochgeladene Datei in der Datenbank mit dem Server request POST /_files/ Block.

Server request post file

Expandieren Sie die resultierende Datei mit dem Expand file Block.

Expand file block

Übergeben Sie nun die ID (die in diesem Fall eine Datei ist) an den Server request POST /flight/csv/ Block.

Using custom endpoint on frontend

Was this article helpful?

AppMaster.io 101 Crash-Kurs

10 Module
2 Wochen

Sie wissen nicht, wo Sie anfangen sollen? Legen Sie los mit unserem Crashkurs für Anfänger und erkunden Sie AppMaster von A bis Z.

Kurs starten
Development it’s so easy with AppMaster!

Benötigen Sie weitere Hilfe?

Lösen Sie jedes Problem mit Hilfe unserer Experten. Sparen Sie Zeit und konzentrieren Sie sich auf die Erstellung Ihrer Anwendungen.

headphones

Kontaktieren Sie Support

Schildern Sie uns Ihr Problem und wir finden eine Lösung für Sie.

message

Community-Chat

Besprechen Sie Fragen mit anderen Benutzern in unserem Chat.

Community beitreten