CSV ( Comma Separated Values) to format zapisu tabeli, w którym wartości komórek oddzielone są symbolem ",". Zamiast "," separator może być używany inny znak. Chociaż AppMaster wymaga przecinka.

Ważne jest, aby ten znak nie występował wewnątrz komórki. W przeciwnym razie dane z pliku zostaną odczytane nieprawidłowo.

Najpierw należy stworzyć model danych, w którym będą zapisywane informacje z pliku CSV. Na przykład stwórzmy model danych dla lotów. Będzie on zawierał następujące pola:

DB example

  • flight_no - numer lotu, w formacie liczb całkowitych;
  • destination w formacie string;
  • classes - klasa lotu dostępna dla tego lotu, format array[string].

Przykładowy plik, który zostanie zaimportowany:

File example

Pierwsza kolumna zawiera. flight_no, druga zawiera. destination, a trzecia zawiera classes.

W trzeciej kolumnie wartości oddzielone są średnikiem.

Tworzenie procesu biznesowego

Przejdź do Business Logic i kliknij przycisk Create Business Process przycisk.

Creating BP

Ten proces biznesowy wymaga pliku CSV, więc dodaj pole pliku do Start blok.

Creating variable

Następnie potrzebujemy Read CSV file block.

Podobnie możesz użyć bloków Read XLS file i Read XLSX file dla odpowiednich formatów.

Jak działa blok Read CSV file:

Posiada on dwa złącza wyjściowe: Each Row oraz Completed. Gdy blok zostanie uruchomiony, będzie czytał plik linia po linii, a za każdym razem będzie aktywował złącze Each Row i przekaże numer wiersza (Row number, począwszy od 1) oraz Row Columns tablicę łańcuchów wszystkich kolumn bieżącego wiersza.

Przekaż plik z bloku Start do bloku Read CSV file block:

Read CSV block

Następnie dodajemy. For Each Loop block. Będzie on przetwarzał tablicę łańcuchów, które przesyła m.in. Read CSV file blok.

Dla . Each Loop, tak jak w przypadku Read CSV file, przetwarza każdy element tablicy i aktywuje Loop Body złącze dla każdego z nich.

Pole wyjściowe index w bloku For Each Loop jest numerem indeksu elementu tablicy. Zaczyna się on od 0.

Podłącz wszystkie złącza:

For each loop block

Następny blok to. Switch. Z jego pomocą określimy, gdzie należy zapisać wartości z różnych pól.

Switch może przyjąć dowolny typ danych wejściowych i w zależności od niego może aktywować różne złącza wyjściowe. Złącze Default złącze jest aktywowane, jeśli wartość wejściowa nie pasuje do żadnego z utworzonych złączy.

Plik CSV ma trzy kolumny, co oznacza, że w każdej tablicy Row columns przechowywane są trzy wartości, zawsze w tej samej kolejności:

  1. liczba;
  2. kierunek;
  3. klasy.

Dlatego utworzymy trzy złącza wyjściowe w Switch bloku 0, 1 i 2 i przekażemy indeks z bloku For Each Loop do bloku Switch bloku.

switch block

Pierwsza kolumna w pliku zawiera numer lotu. Jednak For Each Loop blok pobiera go w formacie string w formacie. Dlatego konwertujemy go na liczbę całkowitą przy pomocy To integer przed zapisem. Po tym zapisujemy ją do zmiennej za pomocą Set variable bloku.

to integer block

Druga kolumna w pliku zawiera kierunek w string formacie. Można go od razu zapisać do zmiennej.

Set variable block

Trzecia kolumna w pliku zawiera listę klas oddzielonych średnikami. Blok For Each Loop blok pobiera ją również w formacie łańcuchowym. Należy więc podzielić ją na tablicę ciągów znaków. Aby to zrobić, używamy bloku Split String blok. Przekażmy do niego ciąg z listą klas i ustawmy ";" jako domyślny separator.

Zapisz otrzymaną wartość do zmiennej.

Split string block

Konfiguracja pętli przez wszystkie wartości kolumn w każdym wierszu jest zakończona.

Musimy utworzyć wpis z każdej linii w pliku. Używamy wypełnionego złącza wyjściowego w For Each Loop i bloku Make flight aby to zrobić. Przekażmy do niego wszystkie zmienne otrzymane w trakcie cyklu.

completed for each loop connector

Teraz zapisz model utworzony w Make flight za pomocą DB Create flight bloku.

DB create block

W ten sposób każdy wiersz zostaje zapisany jako rekord w bazie danych.

Teraz musimy dokończyć przetwarzanie pliku. Wykorzystamy do tego celu completed złącze wyjściowe w bloku Read CSV file i podłączymy je do bloku End bloku.

completed read csv file

BP do importu z pliku jest zakończony.

Endpoint konfiguracja

Przejdź do zakładki Endpoints i utwórz nowy endpoint.

Creating endpoint

Wybierz POST metodę, ustaw URL adres, wybierz Flight group, a utworzony BP Import CSV.

Ustawienie przycisku na frontend

Teraz musimy skonfigurować przycisk na front-endzie do wgrywania pliku.

Przeciągnij File picker na płótno.

I skonfigurować dla niego BP:

Użyj onSelectfiles wyzwalacza. Ten wyzwalacz odbiera pliki jako tablicę, nawet jeśli jest tylko jeden plik. Dlatego użyjemy bloku Array Element , aby uzyskać jeden element z tablicy. Ustawmy pole index na 0, aby uzyskać pierwszy element z tablicy.

Zapiszmy teraz przesłany plik do bazy danych za pomocą bloku Server request POST /_files/ bloku.

Server request post file

Rozwiń plik wynikowy używając Expand file block.

Expand file block

Teraz przekaż identyfikator (który w tym przypadku jest plikiem) do Server request POST /flight/csv/ bloku.

Using custom endpoint on frontend

Was this article helpful?

AppMaster.io 101 Kurs zderzeniowy

10 moduły
2 Tygodnie

Nie wiesz, od czego zacząć? Rozpocznij z naszym szybkim kursem dla początkujących i poznaj AppMaster od A do Z.

Rozpocznij kurs
Development it’s so easy with AppMaster!

Potrzebujesz więcej pomocy?

Rozwiąż każdy problem z pomocą naszych ekspertów. Oszczędzaj czas i skup się na tworzeniu aplikacji.

headphones

Skontaktuj się z pomocą techniczną

Opowiedz nam o swoim problemie, a my znajdziemy dla Ciebie rozwiązanie.

message

Czat społeczności

Omów pytania z innymi użytkownikami na naszym czacie.

Dołącz do społeczności