Sơ đồ luồng (FlowChart) là công cụ trực quan giúp thể hiện quy trình làm việc, qua đó làm rõ các điểm ra quyết định cũng như cái nhìn tổng thể về quy trình. Chúng có thể được sử dụng trong nhiều tình huống khác nhau — từ các dự án lớn đến những công việc nhỏ — và còn có thể tái sử dụng trong các dự án tự động hóa khác.
Điểm nổi bật nhất của sơ đồ luồng là khả năng thể hiện các nhánh logic khác nhau, điều mà các chuỗi tuần tự (Sequence) không làm được. Nhờ đó, Ta có thể xây dựng các quy trình kinh doanh phức tạp và kết nối các hoạt động theo nhiều cách đa dạng.
Ngoài ra, sơ đồ luồng còn hỗ trợ tính năng “Tự động sắp xếp”, cho phép Ta sắp xếp các thành phần một cách tự động theo chiều ngang hoặc chiều dọc.
Để minh họa bài Flowchart theo cách dễ hiểu nhất, Tui sẽ minh họa bài GAME ĐOÁN SỐ NHỊ PHÂN, mô tả:
- Game đoán số nhị phân: Máy sẽ ra một số ngẫu nhiên từ 1 tới 100, sau đó người chơi sẽ đoán:
- Nếu đoán đúng thì thông báo “Chúc mừng bạn đã đoán đúng”
- Nếu đoán sai thì thông báo là người chơi đoán sai, và cho biết số người đoán nhỏ hơn hay lớn hơn số của máy
Flowchart sau khi thiết kế hoàn chỉnh Game Đoán Số Nhị Phân như sau:

Dưới đây là chi tiết cách sử dụng FlowChart:
Bước 1: Tạo Process “BinaryGameFlowChart”
Khởi động UiPath/chọn Process để tạo dự án tự động hóa:

Màn hình New Blank Process hiển thị ra như dưới đây, bạn tiến hành nhập các thông số cho Process:

- Name: Nhập “BinaryGameFlowChart”
- Description: Nhập “Binary Game Flow Chart”
- Location: Chọn nơi lưu trữ dự án
- Compatibility: Chọn Windows
- Language: Chọn ngôn ngữ lạp trình C#
Sau đó nhấn “Create” để tạo dự án, kết quả:

Bước 2: Tạo FlowChart bằng cách nhấn chuột phải vào dự án chọn Add/rồi chọn Flowchart

Sau khi chọn FlowChart, màn hình New FlowChart xuất hiện ra như dưới đây:

- Nhập tên “MyFlowchart” rồi nhấn nút “Create”
Kế quả sau khi tạo New Flowchart, có biểu tượng nút Start ở trên màn hình:

Ta thiết lập để cho MyFlowchart chạy chính:

Ta bấm chuột phải vào “MyFlowchart.xaml” rồi chọn Set as Main, kết quả là file này sẽ được tô đậm trong Project.
Tiếp theo là ta tạo thêm 3 biến cho MyFlowchart:
- MachineNumber: Là biến lưu trữ số ngẫu nhiên của máy từ 1 tới 100
- HumanNumber: Là số người chơi sẽ đoán
- Message: Là thông báo của phần mềm tới với Người chơi: Chúc mừng đoán trúng, thông báo đoán số quá nhỏ, thông báo đoán số quá lớn.

Bạn khai báo biến, kiểu dữ liệu của biến và Scope như trên.
Bước 3: Kéo thả Assign Activity để lưu trữ MachineNumber và kết nối vào Start node

Bạn tìm Assign trong thẻ activities rồi kéo thả Activity nào vào màn hình, nhớ lúc kéo thì di chuyển nó tới Start node nó sẽ xuất hiện các mũi tên như rồi, rồi ta nhả chuột ra, kết quả:

Ta nhấn chuột vào Assign Activity để nhập các thông số cấu hình cho nó trong cửa sổ Properties.

- To variable: Ta gán tên biến MachineNumber
- Set Value: Ta viết mã lệnh C# để tạo số ngẫu nhiên từ 1 tới 100:
new Random().Next(1,101)
Bước 4: Kéo thả Input Dialog Activity và kết nối vào Assign để hỏi người chơi đoán số nào

Ta gõ từ khóa Input trong thẻ Activities để tìm Input Dialog activity và kéo thả Activity nào vào màn hình, lúc kéo thì nhớ kế nối nó với Assign Activity trước đó. Bạn kéo và di chuyển vào Assign thì các biểu tượng mũi tên sẽ xuất hiền thì nhả chuột ra, kết quả:

Bạn cấu hình như sau:
- Label: Nhập tên biến Message
- Result: Nhập tên biến HumanNumber
Như vậy khi cửa sổ này chạy, người chơi gõ số vào để đoán thì nó sẽ được lưu vào biến HumanNumber:

Bước 5: Kéo thả Flow Decision Activity và kết nối vào Input Dialog để hỏi ngươi chơi đoán số nào

Bạn gõ từ khóa “flow decision” trong thẻ Activities, sau đó kéo thả “Flow Decision” Activity nào vào màn hình và kết nối nó với Input Dialog Activity, lúc kéo thả Activity vào thì di chuyển nó vào Input Dialog nó sẽ xuất hiện các biểu tượng mũi tên thì nhả ra, kết quả:

Bạn viết mã lệnh cho mục condition:
HumanNumber==MachineNumber
Chương trình sẽ kiểu tra và trả về kết quả True hoặc False
Dựa vào kết quả này để thông báo cho người chơi là đã Đoán trúng hay là đoán sai.
Bước 6: Kéo thả Messagebox Activity và kết nối vào nhánh True của Flow Decision ở bước 5

Trong thẻ Activities bạn gõ từ khóa Messagebox để tìm MessageBox Activity, kéo thả và kết nối Activity này vào nhánh True của Flow Decision ở bước trên, kết quả:

Bạn tiến hành nhập mã lệnh cho MessageBox này vào thuộc tính Text:
"Congratulations! You guessed correctly! The number was " + MachineNumber.ToString()
Xem kết quả sau khi nhập mã lệnh:

Bước 7: Tiếp tục Kéo thả thêm Flow DecisionActivity và kết nối vào nhánh False của Flow Decision ở bước 5

Tương tự, bạn tìm Flow Decision và kéo thả vào nhánh False của Flow Decision ở bước 5, kéo Activity vào Flow Decision nó sẽ xuất hiện các biểu tượng mũi tên thì nhả chuột ra, kết quả:

Ta tiến hành viết mã lệnh cho Flow Decision này như sau:

Trong thuộc tính Condition, ta gõ lệnh:
HumanNumber > MachineNumber
Bước 8: Tiếp tục Kéo thả thêm Assign Activity và kết nối vào nhánh True của Flow Decision ở bước 7

Tương tự, ta tìm Assign Activity rồi kéo vào nhánh True của Flow Decision ở bước 7, lúc kéo di chuyển chuột vào Flow Decision này thì nó sẽ hiển thị nên các biểu tượng mũi tên thì nhả chuột ra, kết quả:

Ta tiến hành viết mã lệnh cho Set value và To Variable:
- Set value “Too big! Try again.”
- To variable: Message
Kết quả:

Bước 9: Tiếp tục Kéo thả thêm Assign Activity và kết nối vào nhánh False của Flow Decision ở bước 7

Ta tìm Assign Activity và kéo thả kết nối nó với Flow Decision ở bước 7. Cách kết nối tương tự các hướng dẫn ở trên, kết quả:

Ta tiến hành viết mã lệnh cho Set value và To variable:
- Set value “Too small. Try again.”
- To variabble: Message
Kết quả:

Ta có thể kéo giãn các Activity để dễ quan sát: Bấm chuột vào Activity rồi di chuyển ra xa nhau:

Bước 10: Tiếp tục kết nối Assign Activity ở bước 8 và bước 9 vào Input Dialog Activity (tức là khi đoán sai thì yêu cầu đoán lại):

Bạn click chuột vào ô vuông trong Assign Activity mà bạn muốn kết nối với Input Dialog, vừa nhấn vừa di chuyển chuột vào Input Dialog, hình trên bạn thấy là đường nét đứt không? Tui đang di chuyển chuột từ Assign để kết nối với Input Dialog, sau đó nhả chuột ra, kết quả:

Tiếp tục, bạn lập lại thao tác kết nối Assign còn lại vào Input Dialog:

Bạn click chọn Assign và kết nối tới Input Dialog, hình trên bạn thấy đường nét đứt Tui chụp là lúc tui đang kéo thả kết nối 2 Activity này lại với nhau, kết quả:

Như vậy ta đã hoàn tất FlowChart Game đoán số nhị phân
Bạn có thể sắp xếp lại FlowChart theo Horizontal hoặc Vertical bằng cách nhấn chuột phải vào màn hình / chọn Auto arrange / rồi chọn Horizontal hoặc Vertical:

Kết quả sau khi sắp xếp nằm ngang:

Thực thi phần mềm tự động hóa Game đoán số nhị phân này ta có kết quả như sau (các bạn làm theo nhé, và lưu ý là tùy thuộc vào mỗi máy tính, mỗi lần chạy mà nó sẽ khác nhau, nhưng bạn cần tuân thủ theo Game Nhị phân, tức là mỗi lần đoán sai thì giảm quy mô bài toán đi 1/2), chạy Game ta có:
Lần đầu ta có màn hình:

Máy tính đã ra một số ngẫu nhiên từ 1 tới 100, bây giờ nhị phân nên ta đoán đại là 50, rồi nhấn OK.

Vì chương trình báo là số ta đoán quá nhỏ, nên ta suy luận rằng số của máy lớn hơn số của ta, nên chia nhị phân đoạn từ 50 tới 100 là 25, lấy 25+50 là 75. Ta đoán đại số 75 rồi nhấn OK:

Chương trình lại nói là ta đoán quá lớn, tức là số của máy chỉ nằm từ trên 50 tới dưới 75 mà thôi, ta lấy 50+(75-50)/2=62 (đoạn đại số này), nhấn OK :

Chương trình lại báo là Too Small, tức là số này phải từ trên 62 tới dưới 75, ta lấy: 62+ (75-62)/2=68 (đoán đại số này), nhấn OK:

Chương trình vẫn tiếp tục báo Too Samll, tức là số này phải từ trên 68 cho tới dưới 75, ta lấy: 68 + (75-68)/2=71 (đoán đại số này), nhấn OK:

Như vậy tổng cộng ta đoán 5 lần thì đoán đúng theo đúng cơ chế của Game nhị phân.

Bạn làm theo cơ chế nhị phân ở trên thì sẽ đoán trúng được, thường nếu theo cơ chế này thì khoảng tối đa 7 lần là ta đoán trúng bất chấp quy mô của bài toán.
Bạn có thể tải full source code dự án tự động hóa này ở đây:
https://www.mediafire.com/file/acvmiqc8hwzw3ga/BinaryGameFlowChart.rar/file
Như vậy Tui đã hướng dẫn xong các bạn cách sử dụng Flowchart để tạo tự động hóa dạng rẽ nhánh thông qua bài minh họa Game nhị phân
Bài học tiếp theo, Tui sẽ trình bày chi tiết về “Sử dụng State Machine để chuyển đổi trạng thái trong thực thi mô hình tự động hóa” đây là một trong các chức năng rất hữu dụng của RPA, Các bạn chú ý theo dõi
Chúc các bạn thành công
p/s: Toàn bộ các bài học liên quan tới Tự động hóa quy trình bằng Robot được tổng hợp tại link https://tranduythanh.com/robotic-process-automation/, các bạn vào trang này và kéo xuống có thể theo dõi từng bài theo chươngĐăng ký và tải phần mềm UiPath Studio
One thought on “Bài 25: Sử dụng Flowchart cho quy trình tự động hóa phân nhánh”