CSV ( Comma Separated Values ), hücre değerlerinin “,” sembolü ile ayrıldığı bir tablo depolama formatıdır. “,” Ayırıcısı yerine başka bir karakter kullanılabilir. Bununla birlikte, AppMaster virgül gerektirir.
Bu karakterin hücre içinde oluşmamasını sağlamak önemlidir. Aksi takdirde dosya verileri yanlış okunacaktır.
İlk olarak, CSV dosyasındaki bilgilerin kaydedileceği bir veri modeli oluşturun. Örneğin, uçuşlar için bir veri modeli yapalım. Aşağıdaki alanları içerecektir:
- flight_no - tamsayı biçiminde uçuş numarası;
- dize biçiminde hedef ;
- sınıflar - bu uçuş için mevcut uçuş sınıfı, dizi[string] formatı.
İçe aktarılacak bir dosya örneği:
İlk sütun flight_no , ikinci sütun destination ve üçüncü sütun classes içerir.
Üçüncü sütunda değerler noktalı virgülle ayrılır.
Bir iş süreci oluşturun
Business Logic sekmesine gidin ve Create Business Process düğmesine tıklayın.
Bu iş sürecinin bir CSV dosyasına ihtiyacı var, bu nedenle dosya alanını Start bloğuna ekleyin.
Ardından, Read CSV dosya bloğuna ihtiyacımız var.
Benzer şekilde, ilgili formatlar için Read XLS file ve Read XLSX file bloklarını kullanabilirsiniz.
Read CSV file bloğu nasıl çalışır:
İki çıkış konektörü vardır: Each Row ve Completed. Blok etkinleştirildiğinde, dosyayı satır satır okuyacak ve Each Row bağlayıcısını etkinleştirecek ve satır numarasını (1'den başlayarak Satır numarası) ve Satır Sütunlarını, geçerli tüm sütunların bir dize dizisini iletecektir. sıra.
Dosyayı Start bloğundan Read CSV file bloğuna geçirin:
Ardından, For Each Loop bloğunu ekleyin. Read CSV file bloğunu gönderen dize dizisini işleyecektir.
Each Loop için, Read CSV file, gibi, dizinin her bir öğesini işler ve her biri için Loop Body bağlayıcısını etkinleştirir.
For Each Loop bloğundaki dizin çıktı alanı, dizi öğesinin dizin numarasıdır. 0'dan başlar.
Tüm konektörleri bağlayın:
Bir sonraki blok Switch . Onun yardımıyla farklı alanlardan değerlerin nereye yazılacağını belirleyeceğiz.
Switch her tür girişi kabul edebilir ve buna bağlı olarak farklı çıkış konektörlerini etkinleştirebilir. Giriş değeri oluşturulan bağlayıcıların hiçbiriyle eşleşmezse Default bağlayıcı etkinleştirilir.
CSV dosyasının üç sütunu vardır; bu, her Satır sütun dizisinde her zaman aynı sırada depolanan üç değer olduğu anlamına gelir:
- sayı;
- yön;
- sınıflar.
Bu nedenle Switch bloğu 0, 1 ve 2'de üç çıkış konektörü oluşturacağız ve For Each Loop bloğundan dizini Switch bloğuna geçireceğiz.
Dosyadaki ilk sütun uçuş numarasını içerir. Ancak For Each Loop bloğu onu string biçiminde alır. Bu nedenle, kaydetmeden önce To integer bloğunu kullanarak onu bir tamsayıya dönüştürürüz. Bundan sonra, Set variable bloğunu kullanarak bir değişkene kaydedin.
Dosyadaki ikinci sütun, yönü string biçiminde içerir. Hemen bir değişkene kaydedilebilir.
Dosyadaki üçüncü sütun, noktalı virgülle ayrılmış sınıfların bir listesini içerir. For Each Loop bloğu da onu string formatında alır. Bu yüzden onu bir dizi diziye bölün. Bunu yapmak için Split String bloğunu kullanıyoruz. İçine sınıfların listesini içeren bir dize geçirelim ve ";" olarak ayarlayalım. varsayılan ayırıcı olarak.
Alınan değeri bir değişkene kaydedin.
Her satırdaki tüm sütun değerleri üzerinden bir döngü kurulumu tamamlandı.
Dosyadaki her satırdan bir girdi oluşturmamız gerekiyor. Bunu yapmak için For Each Loop bloğunda ve Make flight bloğunda tamamlanmış çıkış konektörünü kullanırız. Döngü sırasında alınan tüm değişkenleri ona aktaralım.
Şimdi Make flight içinde oluşturulan modeli DB Create flight bloğunu kullanarak kaydedin.
Böylece her satır veritabanına bir kayıt olarak kaydedilir.
Şimdi dosyayı işlemeyi bitirmemiz gerekiyor. completed çıktı konektörünü Read CSV file bloğunda kullanacağız ve onu End bloğuna bağlayacağız.
Bir dosyadan içe aktarılacak BP tamamlandı.
Endpoint kurulumu
Endpoints sekmesine gidin ve yeni bir uç nokta oluşturun.
POST yöntemini seçin, URL adresini ayarlayın, Flight group ve oluşturulan BP Import CSV seçin.
Ön uçta bir düğme ayarlama
Şimdi dosyayı yüklemek için ön uçta bir düğme kurmamız gerekiyor.
File picker öğesini tuval üzerine sürükleyin.
Ve bunun için BP'yi kurun:
onSelectfiles tetikleyicisini kullanın. Bu tetikleyici, yalnızca bir dosya olsa bile dosyaları bir dizi olarak alır. Bu nedenle, diziden bir eleman almak için Array Element bloğunu kullanacağız. Diziden ilk öğeyi almak için dizin alanını 0 olarak ayarlayalım.
Şimdi Server request POST /_files/ bloğunu kullanarak yüklenen dosyayı veritabanına kaydedin.
Genişletilmiş Expand file bloğunu kullanarak elde edilen dosyayı genişletin.
Şimdi kimliği (bu durumda bir dosyadır) Server request POST /flight/csv/ bloğuna iletin.