CSV ( Comma Separated Values) is een tabelopslagformaat waarin de celwaarden worden gescheiden door het symbool ",". In plaats van "," kan ook een ander teken als scheidingsteken worden gebruikt. Hoewel, AppMaster vereist een komma.

Het is belangrijk ervoor te zorgen dat dit teken niet in de cel voorkomt. Anders worden de bestandsgegevens verkeerd gelezen.

Maak eerst een datamodel waarin de informatie uit het CSV-bestand wordt opgeslagen. Laten we bijvoorbeeld een datamodel maken voor vluchten. Het zal de volgende velden bevatten:

DB example

  • flight_no - vluchtnummer, in geheel getal formaat;
  • bestemming in string formaat;
  • klassen - vluchtklasse beschikbaar voor deze vlucht, array[string] formaat.

Een voorbeeld van een bestand dat zal worden geïmporteerd:

File example

De eerste kolom bevat flight_no, de tweede bevat destination, en de derde bevat classes.

In de derde kolom worden de waarden gescheiden door een puntkomma.

Een bedrijfsproces creëren

Ga naar het Business Logic tabblad en klik op de Create Business Process knop.

Creating BP

Dit bedrijfsproces heeft een CSV-bestand nodig, dus voeg het bestandsveld toe aan het Start blok.

Creating variable

Vervolgens hebben we het Read CSV bestandsblok.

Op dezelfde manier kunt u de blokken Read XLS file en Read XLSX file gebruiken voor de overeenkomstige formaten.

Hoe het blok Read CSV file werkt:

Het heeft twee output connectoren: Each Row en Completed. Wanneer het blok wordt geactiveerd, leest het het bestand regel voor regel, en elke keer activeert het de Each Row connector en geeft het rijnummer door (Row number, beginnend bij 1) en Row Columns een string array van alle kolommen van de huidige rij.

Geef het bestand van het Start blok naar het Read CSV file blok:

Read CSV block

Voeg vervolgens het For Each Loop blok toe. Het zal de string array die het Read CSV file blok.

Voor Each Loop, net als de Read CSV file, verwerkt elk element van de array en activeert de Loop Body connector voor elk van hen.

Het uitgangsveld index in het blok For Each Loop is het indexnummer van het array-element. Het begint bij 0.

Sluit alle connectors aan:

For each loop block

Het volgende blok is Switch. Met behulp daarvan bepalen we waar de waarden van de verschillende velden moeten worden geschreven.

Switch kan elk type invoer accepteren en, afhankelijk daarvan, verschillende uitvoerconnectoren activeren. De Default connector wordt geactiveerd als de invoerwaarde niet overeenkomt met een van de aangemaakte connectors.

Het CSV-bestand heeft drie kolommen, wat betekent dat er drie waarden zijn opgeslagen in elke rij kolommen array, altijd in dezelfde volgorde:

  1. nummer;
  2. richting;
  3. klassen.

Daarom maken we drie uitgangsconnectoren in het Switch blok 0, 1, en 2 en geven de index van het For Each Loop blok aan het Switch blok.

switch block

De eerste kolom in het bestand bevat het vluchtnummer. Maar het For Each Loop blok krijgt het in het string formaat. Daarom converteren we het naar een geheel getal met behulp van het To integer blok alvorens op te slaan. Daarna slaan we het op in een variabele met behulp van het Set variable blok.

to integer block

De tweede kolom in het bestand bevat de richting in string formaat. Deze kan onmiddellijk worden opgeslagen in een variabele.

Set variable block

De derde kolom in het bestand bevat een lijst van klassen, gescheiden door puntkomma's. Het blok For Each Loop blok krijgt het ook in het stringformaat. Dus splits het in een array van strings. Hiervoor gebruiken we het Split String blok. We geven een string door met een lijst van klassen en stellen ";" in als standaard scheidingsteken.

Sla de ontvangen waarde op in een variabele.

Split string block

Er wordt een lus opgezet door alle kolomwaarden in elke rij.

We moeten een item maken van elke regel in het bestand. We gebruiken de voltooide uitvoerconnector in het For Each Loop blok en het Make flight blok om dit te doen. We brengen er alle variabelen die we tijdens de cyclus hebben ontvangen naartoe.

completed for each loop connector

Sla nu het model gemaakt in Make flight met behulp van het DB Create flight blok.

DB create block

Zo wordt elke rij opgeslagen als een record in de database.

Nu moeten we het bestand afwerken. We zullen de completed output connector in het Read CSV file blok en verbinden het met het End blok.

completed read csv file

De BP voor het importeren uit een bestand is voltooid.

Endpoint setup

Ga naar het tabblad Endpoints en maak een nieuw eindpunt aan.

Creating endpoint

Selecteer de POST methode, stel het URL adres, selecteer de Flight group, en het aangemaakte BP Import CSV.

Een knop instellen op de voorkant

Nu moeten we op de frontend een knop instellen om het bestand te uploaden.

Sleep het File picker element op het canvas.

En de BP ervoor instellen:

Gebruik de onSelectfiles trigger. Deze trigger ontvangt bestanden als een array, ook al is er maar één bestand. Daarom zullen we het blok Array Element gebruiken om één element uit de array te halen. Laten we het indexveld op 0 zetten om het eerste element uit de array te krijgen.

Sla nu het geüploade bestand op in de database met het Server request POST /_files/ blok.

Server request post file

Vouw het resulterende bestand uit met behulp van de Expand file blok.

Expand file block

Geef nu de ID (die in dit geval een bestand is) door aan de Server request POST /flight/csv/ blok.

Using custom endpoint on frontend

Was this article helpful?

AppMaster.io 101 Spoedcursus

10 modules
2 weken

Weet je niet waar je moet beginnen? Ga aan de slag met onze spoedcursus voor beginners en verken AppMaster van A tot Z.

Start cursus
Development it’s so easy with AppMaster!

Meer hulp nodig?

Los elk probleem op met de hulp van onze experts. Bespaar tijd en focus op het bouwen van uw applicaties.

headphones

Contact opnemen met ondersteuning

Vertel ons over uw probleem, en we zullen een oplossing voor u vinden.

message

Community-chat

Bespreek vragen met andere gebruikers in onze chat.

Word lid van de community