Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 4

Mô hình hóa quy trình với BPMN 2.0

Recommended resources

Chào bạn,

Trong các bài học trước, chúng ta đã học cách "đọc" một sơ đồ quy trình BPMN, giống như cách một lập trình viên đọc và hiểu một đoạn code. Bạn đã biết cách nhận diện các ký hiệu, lần theo luồng xử lý và giải thích các quyết định logic.

Bây giờ, chúng ta sẽ chuyển từ vai trò "người đọc" sang vai trò "người viết". Mục tiêu của bài học hôm nay là giúp bạn mô hình hóa một quy trình nghiệp vụ đơn giản sử dụng các ký hiệu BPMN 2.0 cơ bản. Đây là bước thực hành đầu tiên và quan trọng nhất, nơi bạn sẽ tự tay tạo ra một "bản thiết kế" (blueprint) cho một quy trình. Kỹ năng này tương đương với việc bạn viết chương trình "Hello, World!" đầu tiên hoặc vẽ một sơ đồ kiến trúc đơn giản trước khi bắt đầu code.

1. Công cụ và các "Khối xây dựng" cơ bản

Trước khi bắt đầu vẽ, chúng ta cần một "tấm bảng". Bạn có thể sử dụng công cụ mô hình hóa online miễn phí tại bpmn.io. Đây là một công cụ rất nhẹ và trực quan, không yêu cầu cài đặt, rất phù hợp để thực hành. Giao diện của nó gần như tương tự với Camunda Modeler mà chúng ta sẽ cài đặt ở các module sau.

Tiếp theo, hãy cùng ôn lại nhanh các "khối xây dựng" (building blocks) chính mà chúng ta sẽ sử dụng.

BPMN 2.0 Basic Symbols Guide
Các ký hiệu BPMN 2.0 cơ bản được phân loại theo chức năng: Đối tượng Luồng (Flow Objects), Đối tượng Kết nối (Connecting Objects), Cổng rẽ nhánh (Gateways), Làn bơi (Swimlanes), và Hiện vật (Artifacts).

Trong bài học này, chúng ta sẽ tập trung vào các ký hiệu cốt lõi nhất:

  • Events (Sự kiện):
    • Start Event (hình tròn nét mảnh): Nơi quy trình bắt đầu.
    • End Event (hình tròn nét đậm): Nơi quy trình kết thúc.
  • Activities (Hoạt động):
    • Task (hình chữ nhật bo góc): Một công việc cần được thực hiện.
  • Gateways (Cổng rẽ nhánh):
    • Exclusive Gateway (hình thoi có chữ X): Rẽ nhánh theo một điều kiện duy nhất (if-else).
    • Parallel Gateway (hình thoi có dấu +): Tách luồng để thực hiện nhiều công việc song song (fork/join).
  • Connecting Objects (Đối tượng kết nối):
    • Sequence Flow (mũi tên liền nét): Chỉ ra trình tự thực hiện các hoạt động.

Để tra cứu chi tiết hơn về bất kỳ ký hiệu nào, bạn có thể đánh dấu trang BPMN 2.0 Symbol Reference của Camunda. Đây là một tài liệu tham khảo rất đầy đủ và hữu ích.

BPMN 2.0 Symbols - A complete guide with examples.

Đây là một cẩm nang toàn diện về tất cả các ký hiệu BPMN 2.0. Bạn không cần đọc hết ngay bây giờ, nhưng hãy lưu lại để tra cứu khi cần.

Hãy lướt qua các mục chính: Activities, Gateways, và Events để làm quen với cấu trúc của tài liệu này.


2. Thực hành có hướng dẫn: Mô hình hóa quy trình "Xét duyệt bảo hiểm xe"

Cách tốt nhất để học là thông qua thực hành. Chúng ta sẽ cùng nhau mô hình hóa một quy trình xét duyệt đơn xin bảo hiểm xe hơi. Hãy mở trang bpmn.io và làm theo các bước trong video hướng dẫn sau.

Video này sử dụng Camunda Modeler, nhưng giao diện và các thao tác cơ bản hoàn toàn tương tự với công cụ online bpmn.io.

Tutorial: How to Create a BPMN Diagram in Camunda 8 Using Modeler

Video "Tutorial: How to Create a BPMN Diagram in Camunda 8 Using Modeler" sẽ hướng dẫn bạn từng bước để tạo một sơ đồ BPMN từ đầu đến cuối.

Hãy xem toàn bộ video và thực hành theo. Dưới đây là các cột mốc chính để bạn tiện theo dõi: 00:00 - 01:11: Kéo-thả các ký hiệu cơ bản (Start Event, Task) và kết nối chúng bằng Sequence Flow. 01:11 - 03:15: Thêm Gateway để tạo các luồng rẽ nhánh. 03:15 - 05:09: Thêm các sự kiện phức tạp hơn như Boundary Event (chúng ta sẽ học kỹ hơn sau) và hoàn thiện luồng quy trình. 05:09 - 08:25: Bước cực kỳ quan trọng: Đặt tên (label) cho tất cả các thành phần. Một sơ đồ không có nhãn rõ ràng sẽ rất khó hiểu. 08:25 - 09:49: Thay đổi loại Task (ví dụ: User Task, Service Task) để thể hiện bản chất của công việc.

Sau khi xem xong video, bạn sẽ có một sơ đồ hoàn chỉnh trông tương tự như thế này:

Camunda Modeler Interface with a BPMN Diagram
Giao diện Camunda Modeler với một sơ đồ quy trình hoàn chỉnh, cho thấy các Làn bơi (Lanes) phân chia trách nhiệm và Bảng thuộc tính (Properties Panel) để cấu hình chi tiết.

3. Đến lượt bạn: Mô hình hóa quy trình "Xử lý Ticket Hỗ trợ IT"

Bây giờ, bạn hãy vận dụng những gì vừa học để tự mình mô hình hóa một quy trình rất quen thuộc với các developer.

Tình huống: Quy trình xử lý một ticket hỗ trợ kỹ thuật.

  1. Bắt đầu: Một developer tạo một ticket hỗ trợ mới.
  2. Công việc 1: Nhân viên Service Desk xem xét ticket để kiểm tra xem thông tin đã đầy đủ chưa (ví dụ: mô tả lỗi, log, các bước tái hiện).
  3. Quyết định: Thông tin trong ticket có đầy đủ không?
    • Nếu có: Ticket được chuyển cho đội kỹ sư (Engineering Team) để xử lý.
    • Nếu không: Ticket được gửi trả lại cho developer để yêu cầu bổ sung thông tin. Sau khi developer cập nhật, ticket sẽ quay lại bước "Xem xét ticket" của Service Desk.
  4. Công việc 2: Đội kỹ sư xử lý và giải quyết vấn đề trong ticket.
  5. Kết thúc: Ticket được đóng lại.

Yêu cầu: Hãy sử dụng bpmn.io để vẽ sơ đồ BPMN cho quy trình trên. Cố gắng sử dụng các ký hiệu sau:

  • Start Event
  • User Tasks (ví dụ: "Tạo ticket", "Xem xét ticket", "Xử lý ticket")
  • Exclusive Gateway (cho quyết định "Thông tin có đầy đủ không?")
  • Sequence Flows (để kết nối các bước)
  • End Event

Gợi ý:

  • Bắt đầu với một Start Event và đặt tên là "Ticket được tạo".
  • Hoạt động đầu tiên là gì? Ai thực hiện nó? Hãy dùng một User Task.
  • Điểm rẽ nhánh nằm ở đâu? Hãy dùng một Exclusive Gateway và đặt câu hỏi cho nó, ví dụ "Thông tin đầy đủ?". Các đường đi ra từ gateway này nên có nhãn là "Có" và "Không".
  • Luồng "Không" sẽ quay ngược lại hoạt động nào?
  • Quy trình kết thúc ở đâu?

Sau khi bạn vẽ xong, hãy so sánh với luồng xử lý gợi ý dưới đây.

Xem gợi ý luồng xử lý

Sơ đồ của bạn nên có luồng logic như sau:

  1. Start Event (Ticket được tạo)
  2. -> User Task (Developer tạo ticket)
  3. -> User Task (Service Desk xem xét ticket)
  4. -> Exclusive Gateway (Thông tin đầy đủ?)
  5. Từ Gateway có 2 nhánh:
    • Nhánh [Không] -> quay trở lại User Task (Developer cập nhật ticket), rồi từ đó nối lại vào User Task (Service Desk xem xét ticket).
    • Nhánh [Có] -> User Task (Đội kỹ sư xử lý ticket)
  6. Từ User Task (Đội kỹ sư xử lý ticket) -> End Event (Ticket đã được giải quyết).

Lưu ý: Có nhiều cách để mô hình hóa, ví dụ, bạn có thể gộp "Developer tạo ticket" và "Developer cập nhật ticket" vào một task. Miễn là logic chính được đảm bảo, sơ đồ của bạn vẫn đúng.

Bài tập này giúp bạn chuyển từ việc hiểu khái niệm sang việc áp dụng chúng để giải quyết một bài toán cụ thể, một kỹ năng cốt lõi của người làm kỹ thuật.


Tổng kết bài học

Trong bài học này, bạn đã thực hiện một bước tiến lớn: từ việc đọc hiểu sang việc tự tay tạo ra một mô hình quy trình. Các điểm chính cần ghi nhớ:

  • Bắt đầu đơn giản: Luôn bắt đầu với Start Event, thêm các Task, và kết thúc bằng End Event.
  • Sử dụng Gateways để điều khiển luồng: Dùng Exclusive Gateway cho các quyết định if-else và Parallel Gateway để thực thi song song.
  • Mô hình hóa là để giao tiếp: Luôn đặt tên rõ ràng, có ý nghĩa cho tất cả các phần tử. Một sơ đồ tốt là một sơ đồ mà người khác có thể đọc và hiểu ngay lập tức.
  • Thực hành, thực hành, thực hành: Giống như lập trình, bạn càng mô hình hóa nhiều, bạn càng thành thạo hơn.

Xem trước bài học tiếp theo

Bạn đã nắm vững "ngôn ngữ" BPMN ở mức độ cơ bản. Bây giờ, chúng ta đã sẵn sàng để đi sâu vào nền tảng Camunda.

Trong bài học tiếp theo, chúng ta sẽ bắt đầu Module 2: Khởi tạo dự án với Camunda và Spring Boot. Bài học đầu tiên của module này sẽ là "Mô tả sự khác biệt chính giữa Camunda 7 và Camunda 8". Việc hiểu rõ hai phiên bản này sẽ giúp bạn đưa ra những lựa chọn kiến trúc đúng đắn cho các dự án của mình trong tương lai.