Chu kỳ. Nhập tệp Excel
Sử dụng chu kỳ trong quy trình kinh doanh. Đọc dữ liệu từ file Excel.
Để hiểu quá trình tiếp theo, cần phải đi sâu hơn một chút vào lý thuyết và hiểu nguyên tắc của các chu kỳ. Trước đây, tất cả các quy trình của chúng tôi chỉ chuyển tiếp. Họ có thể chọn một nhánh rẽ cụ thể (trên các khối If-Else và Switch ), nhưng chúng tôi biết chắc chắn rằng mỗi khối sẽ chỉ được thực thi một lần; sẽ không có quay trở lại.
chu kỳ
Chu kỳ cung cấp khả năng lặp lại một phần cụ thể nhiều lần. Quá trình được tạo ra để chuỗi các khối đã chọn được thực hiện lặp đi lặp lại. Cho đến khi điều kiện kết thúc vòng lặp được đáp ứng.
AppMaster cung cấp cho bạn khả năng sử dụng ba loại chu trình khác nhau. Nguyên tắc làm việc của họ là hoàn toàn giống nhau. Điều kiện để kết thúc vòng lặp là điều duy nhất phân biệt chúng với nhau.
- Loop . Đơn giản nhất trong tất cả các chu kỳ. Tham số Times (Integer) của nó đặt một giá trị cố định cho số lần vòng lặp nhất định sẽ được thực hiện.
- While loop . Một vòng lặp sẽ chạy cho đến khi một điều kiện nhất định được đáp ứng. Điều kiện này được chỉ định trong tham số Condition (Boolean) . Ở đầu mỗi vòng lặp, giá trị Condition được kiểm tra; nếu nó là True , thì vòng lặp được thực hiện; nếu là False thì vòng lặp dừng lại. Tham số Limit (Integer) đặt giới hạn về số lần lặp lại của vòng lặp để đảm bảo rằng vòng lặp không chạy mãi mãi. Khi đạt đến nó, vòng lặp sẽ kết thúc, bất kể giá trị của Condition .
- For each loop . Vòng lặp được thiết kế để hoạt động với mảng. Nó lấy một mảng làm đầu vào và cho phép bạn thực hiện một thao tác nhất định trên từng phần tử mảng. Chạy nhiều lần khi có các phần tử trong mảng.
Mỗi chu kỳ có hai luồng đầu ra.
- Loop Body . Bản thân vòng lặp. Quá trình đó, sẽ được lặp lại với số lần cần thiết.
- Completed . Chuỗi sẽ chạy khi vòng lặp kết thúc. Chỉ định những việc cần làm tiếp theo sau khi vòng lặp kết thúc. Nhân tiện, bất kỳ chu trình nào cũng có thể được hoàn thành theo lệnh mà không cần đợi các điều kiện ban đầu được đáp ứng. Để làm điều này, bạn chỉ cần sử dụng khối Break Loop ở đúng nơi. Nó sẽ ngay lập tức chuyển luồng sang Completed .
Read XLSX File
Để phân tích tệp xlsx, chúng tôi sẽ sử dụng khối Read XLSX File . Nguyên lý hoạt động của nó gần giống với khối For each loop . Nó đại diện cho tệp bảng dưới dạng một chuỗi các chuỗi. Và đến lượt mình, mỗi hàng cũng là một mảng, nhưng đã là một mảng các cột của hàng đã cho.
Bản thân tệp xlsx được trình bày ở dạng tương tự. Cột đầu tiên chứa tên của phần và cột thứ hai chứa thông tin mà phần này chứa. Đồng thời, chúng tôi không biết trước dòng thông tin được viết ở đâu cả; nó có thể xuất hiện ở bất kỳ nơi nào tùy ý. Trong ví dụ này, tiểu sử được chỉ định trên dòng thứ hai và thông tin đăng nhập ở dòng thứ tám, nhưng các dòng và thứ tự viết chúng có thể là bất kỳ.
Quá trình kinh doanh bắt đầu bằng cách nhận tệp dưới dạng tham số đầu vào. Xin lưu ý rằng loại dữ liệu tệp, tức là ID tệp, được truyền chứ không phải toàn bộ tệp. Chúng tôi chuyển cùng một tệp vào khối Read XLSX File .
Trong trường hợp này, Each row là một dạng tương tự của Loop Body . Điều này có nghĩa là vòng lặp sẽ được thực hiện nhiều lần tùy theo số hàng trong tệp xlsx. Đồng thời, mỗi chu kỳ, chúng tôi nhận được thông tin về hàng nào hiện đang được xử lý ( Row number ), cũng như các cột trong hàng này ( Row columns ).
Nhiệm vụ của chúng ta là kiểm tra ô đầu tiên của mỗi hàng. Chúng tôi hy vọng sẽ tìm thấy một ô có nội dung "Đăng nhập" hoặc "Bio". Bằng cách này, chúng tôi sẽ hiểu rằng chúng tôi đã tìm thấy một cột có thông tin cần thiết.
Để làm điều này, chúng ta cần một khối Array Element có chỉ số bằng 0. Đây là cách chúng ta lấy nội dung của ô đầu tiên của chuỗi. Sau đó, chúng tôi sử dụng khối Switch để tìm trận đấu mong muốn (Đăng nhập, Sinh học).
Nếu không tìm thấy kết quả khớp như vậy, thì vòng lặp sẽ chuyển sang lần lặp tiếp theo, kiểm tra hàng tiếp theo. Nếu tìm thấy, thì chúng tôi hiểu rằng ô thứ hai của hàng này phải chứa thông tin chúng tôi cần và sử dụng lại khối Array Element (nhưng với chỉ mục 1) để lấy thông tin này.
Nó vẫn chỉ để lưu thông tin này. Rốt cuộc, nếu bạn không làm điều này ngay lập tức, thì chu kỳ sẽ tiếp tục và dữ liệu nhận được sẽ bị mất.
Biến
Giải pháp tốt nhất trong tình huống này là sử dụng các biến. Ý nghĩa của chúng nằm ở chỗ các giá trị nhất định không được chuyển ngay từ khối này sang khối khác mà được lưu trữ trong bộ nhớ và được sử dụng nếu cần.
Có hai khối cho việc này:
- khối Variable . Nó có thể là bất kỳ số, chuỗi hoặc thậm chí là một mảng đối tượng. Điều quan trọng là phải hiểu rằng bản thân khối này không làm gì cả; nó không có tham số đầu vào. Nó chỉ phục vụ để thông báo thực tế là một vị trí được phân bổ trong bộ nhớ để ghi một số giá trị, với khả năng sau này tham khảo lại và tìm ra giá trị này.
- Khối Set Variable được thiết kế để ghi một giá trị mới cho một biến.
Trong trường hợp của chúng tôi, chúng tôi sẽ xác định hai biến kiểu String và ghi các giá trị tìm thấy vào chúng, ở một nơi Đăng nhập và trong Tiểu sử thứ hai. Khi kết thúc vòng lặp, chúng ta chỉ cần truyền giá trị từ các biến này vào khối kết thúc.
Bây giờ là lúc tạo một điểm cuối cho quy trình kinh doanh đã hoàn thành và do đó làm cho nó có sẵn để sử dụng trên giao diện người dùng của ứng dụng web.
Kết quả cuối cùng
Kết quả là quy trình kinh doanh nên như sau:
Có những bước hoàn thiện để hoàn thành việc tạo ứng dụng. Hãy quay lại quy trình nghiệp vụ frontend và kết thúc nó. Chúng tôi cần:
- Chuyển mô hình tệp xlsx để lưu vào máy chủ.
- Mở rộng kết quả và lấy ID tệp.
- Chuyển ID này tới điểm cuối đã tạo trước đó POST /xlsx-data/
- Sử dụng dữ liệu nhận được để hiển thị trong các trường thích hợp (và cũng để đặt lại tham số Disable , mở ra khả năng chỉnh sửa).
Nếu mọi thứ được thực hiện chính xác, phiên bản cuối cùng sẽ trông như thế này sau khi tải thông tin từ các tệp.