CSV (Giá trị được phân Comma Separated Values ) là định dạng lưu trữ bảng trong đó các giá trị ô được phân tách bằng ký hiệu “,”. Thay vì dấu phân cách “,” có thể sử dụng một ký tự khác. Mặc dù, AppMaster yêu cầu dấu phẩy.
Điều quan trọng là phải đảm bảo rằng ký tự này không xuất hiện bên trong ô. Nếu không, dữ liệu tệp sẽ được đọc không chính xác.
Trước tiên, hãy tạo một mô hình dữ liệu để lưu thông tin từ tệp CSV. Ví dụ: hãy tạo một mô hình dữ liệu cho các chuyến bay. Nó sẽ chứa các trường sau:
- flight_no - số hiệu chuyến bay, ở định dạng số nguyên;
- đích ở định dạng chuỗi;
- lớp - hạng chuyến bay có sẵn cho chuyến bay này, định dạng mảng[chuỗi].
Một ví dụ về tệp sẽ được nhập:
Cột đầu tiên chứa flight_no , cột thứ hai chứa destination và cột thứ ba chứa classes .
Trong cột thứ ba, các giá trị được phân tách bằng dấu chấm phẩy.
Tạo quy trình kinh doanh
Chuyển đến tab Business Logic và nhấp vào nút Create Business Process .
Quy trình công việc này cần tệp CSV, vì vậy hãy thêm trường tệp vào khối Start .
Tiếp theo, chúng ta cần khối Read CSV .
Tương tự, bạn có thể sử dụng các khối Read XLS file và Read XLSX file cho các định dạng tương ứng.
Cách hoạt động của khối Read CSV file :
Nó có hai đầu nối đầu ra: Each Row và Completed. Khi khối được kích hoạt, nó sẽ đọc tệp theo từng dòng và mỗi lần nó sẽ kích hoạt trình kết nối Each Row và chuyển số hàng (Số hàng, bắt đầu từ 1) và Cột hàng một mảng chuỗi gồm tất cả các cột của hiện tại hàng ngang.
Chuyển tệp từ khối Start sang khối Read CSV file :
Tiếp theo, thêm khối For Each Loop . Nó sẽ xử lý mảng chuỗi gửi khối Read CSV file .
Đối với Each Loop , giống như Read CSV file, xử lý từng phần tử của mảng và kích hoạt trình kết nối Nội dung Loop Body cho từng phần tử đó.
Trường đầu ra chỉ mục trong khối For Each Loop là số chỉ mục của phần tử mảng. Nó bắt đầu từ 0.
Kết nối tất cả các đầu nối:
Khối tiếp theo là Switch . Với sự trợ giúp của nó, chúng tôi sẽ xác định nơi ghi các giá trị từ các trường khác nhau.
Switch có thể chấp nhận bất kỳ loại đầu vào nào và tùy thuộc vào nó, có thể kích hoạt các đầu nối đầu ra khác nhau. Trình kết nối Default được kích hoạt nếu giá trị đầu vào không khớp với bất kỳ trình kết nối nào đã tạo.
Tệp CSV có ba cột, nghĩa là có ba giá trị được lưu trữ trong mỗi mảng Hàng cột, luôn theo cùng một thứ tự:
- con số;
- hướng đi;
- các lớp học.
Do đó, chúng tôi sẽ tạo ba đầu nối đầu ra trong khối Switch 0, 1 và 2 và chuyển chỉ mục từ khối For Each Loop sang khối Switch .
Cột đầu tiên trong tệp chứa số chuyến bay. Nhưng khối For Each Loop lấy nó ở định dạng string . Do đó, chúng tôi chuyển đổi nó thành một số nguyên bằng cách sử dụng khối To integer trước khi lưu. Sau đó, lưu nó vào một biến bằng cách sử dụng khối Set variable .
Cột thứ hai trong tệp chứa hướng ở định dạng string . Nó có thể được lưu ngay lập tức vào một biến.
Cột thứ ba trong tệp chứa danh sách các lớp được phân tách bằng dấu chấm phẩy. Khối For Each Loop cũng lấy nó ở định dạng chuỗi. Vì vậy, hãy chia nó thành một chuỗi các chuỗi. Để làm điều này, chúng ta sử dụng khối Split String . Hãy chuyển một chuỗi có danh sách các lớp vào đó và đặt ";" làm dấu phân cách mặc định.
Lưu giá trị nhận được vào một biến.
Một vòng lặp thiết lập thông qua tất cả các giá trị cột trong mỗi hàng đã kết thúc.
Chúng ta cần tạo một mục nhập từ mỗi dòng trong tệp. Chúng tôi sử dụng trình kết nối đầu ra đã hoàn thành trong khối For Each Loop và khối Make flight để thực hiện việc này. Hãy chuyển tất cả các biến nhận được trong chu kỳ sang nó.
Bây giờ hãy lưu mô hình đã tạo trong Make flight bằng cách sử dụng khối DB Create flight .
Do đó, mỗi hàng được lưu dưới dạng một bản ghi trong cơ sở dữ liệu.
Bây giờ chúng ta cần xử lý xong tệp. Chúng tôi sẽ sử dụng trình kết nối đầu ra completed trong khối Read CSV file và kết nối nó với khối End .
BP để nhập từ một tệp đã hoàn tất.
thiết lập Endpoint
Chuyển đến tab Điểm Endpoints và tạo điểm cuối mới.
Chọn phương thức POST , đặt địa chỉ URL , chọn Flight group và BP Import CSV đã tạo.
Thiết lập một nút trên giao diện người dùng
Bây giờ chúng ta cần thiết lập một nút ở giao diện người dùng để tải tệp lên.
Kéo phần tử Bộ File picker vào khung vẽ.
Và thiết lập BP cho nó:
Sử dụng trình kích hoạt onSelectfiles . Trình kích hoạt này nhận các tệp dưới dạng một mảng, ngay cả khi chỉ có một tệp. Do đó, chúng ta sẽ sử dụng khối Array Element để lấy một phần tử từ mảng. Hãy đặt trường chỉ mục thành 0 để lấy phần tử đầu tiên từ mảng.
Bây giờ hãy lưu tệp đã tải lên vào cơ sở dữ liệu bằng cách sử dụng khối Server request POST /_files/ .
Mở rộng tệp kết quả bằng khối Expand file .
Bây giờ hãy chuyển ID (trong trường hợp này là một tệp) cho khối Server request POST /flight/csv/ .