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:
- 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:
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.
Dit bedrijfsproces heeft een CSV-bestand nodig, dus voeg het bestandsveld toe aan het Start blok.
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:
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:
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:
- nummer;
- richting;
- 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.
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.
De tweede kolom in het bestand bevat de richting in string formaat. Deze kan onmiddellijk worden opgeslagen in een variabele.
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.
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.
Sla nu het model gemaakt in Make flight met behulp van het DB Create flight blok.
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.
De BP voor het importeren uit een bestand is voltooid.
Endpoint setup
Ga naar het tabblad Endpoints en maak een nieuw eindpunt aan.
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.
Vouw het resulterende bestand uit met behulp van de Expand file blok.
Geef nu de ID (die in dit geval een bestand is) door aan de Server request POST /flight/csv/ blok.