Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

BPMN 2.0 Notation

Business Process Mapping and BPMN Bài 2/60

Mở đầu — vì sao bài này quan trọng

Hãy tưởng tượng bạn vừa vẽ xong một sơ đồ quy trình phê duyệt mua hàng bằng các ô vuông và mũi tên tự nghĩ ra. Bạn gửi cho đồng nghiệp phòng IT để họ tự động hóa. Một tuần sau, họ quay lại hỏi: "Cái ô hình thoi này nghĩa là rẽ nhánh chọn một, hay chạy song song cả hai?" Bạn ngớ người — vì với bạn nó hiển nhiên, nhưng với người khác thì không.

Đó chính là vấn đề mà BPMN sinh ra để giải quyết. Ở bài trước, chúng ta đã học về Process Mapping nói chung — cách nhìn một quy trình thành các bước nối tiếp. Nhưng "vẽ flowchart tự do" có một điểm yếu chết người: mỗi người vẽ một kiểu, mỗi phòng ban hiểu một nghĩa. Khi quy trình cần được chia sẻ giữa business, IT, và cả phần mềm thực thi (execution engine), sự mơ hồ này trở thành thảm họa.

BPMN 2.0 (Business Process Model and Notation) là ngôn ngữ chuẩn quốc tế do tổ chức OMG (Object Management Group) ban hành, dùng để mô hình hóa quy trình nghiệp vụ. Nó giống như "ngữ pháp tiếng Anh" của giới quy trình: ai cũng đọc được, ai cũng hiểu giống nhau, và quan trọng nhất — máy tính cũng đọc được. Một sơ đồ BPMN vẽ đúng chuẩn có thể được nạp thẳng vào engine để chạy tự động, không cần dịch lại.

Bài này sẽ cho bạn một bản đồ tổng quan về bộ ký hiệu cốt lõi của BPMN 2.0 — bốn nhóm phần tử chính tạo nên mọi sơ đồ. Đây là bài "vỡ lòng về bảng chữ cái". Bạn chưa cần thuộc lòng từng biến thể (các bài sau sẽ đào sâu Events, Gateways, Pools...), nhưng sau bài này bạn phải đọc được một sơ đồ BPMN bất kỳ và hiểu đại ý nó nói gì.

Khái niệm cốt lõi

BPMN 2.0 chia mọi phần tử trên sơ đồ thành bốn nhóm lớn: Flow Objects (đối tượng dòng chảy), Connecting Objects (đối tượng kết nối), Swimlanes (làn bơi), và Artifacts (phần tử bổ trợ). Hãy nắm chắc bốn nhóm này — chúng là khung xương của toàn bộ ngôn ngữ.

1. Flow Objects — trái tim của sơ đồ

Đây là nhóm quan trọng nhất, gồm ba loại phần tử bạn sẽ gặp nhiều nhất:

Events (Sự kiện) — hình tròn ○ Event là "điều gì đó xảy ra" trong quá trình quy trình diễn ra. Có ba loại theo vị trí:

  • Start Event (○ viền mảnh): điểm bắt đầu quy trình. Một sơ đồ thường có một Start Event — nơi token đầu tiên xuất hiện. Ví dụ: "Khách hàng gửi đơn hàng".
  • Intermediate Event (◎ viền đôi): xảy ra giữa chừng, ví dụ "chờ nhận email xác nhận" hay "hết 2 ngày thì nhắc".
  • End Event (● viền đậm): kết thúc một nhánh quy trình. Ví dụ: "Đơn hàng hoàn tất".
Mẹo nhận dạng nhanh: viền càng đậm thì càng về "cuối". Viền mảnh = bắt đầu, viền đôi = giữa, viền đậm = kết thúc.

Activities (Hoạt động) — hình chữ nhật bo góc ▭ Activity là "công việc cần làm" — phần thực thi tạo ra giá trị. Hai dạng chính:

  • Task: một việc đơn lẻ, không chia nhỏ thêm trong sơ đồ này. Ví dụ "Kiểm tra tồn kho", "Gửi hóa đơn".
  • Sub-process: một nhóm việc được gói lại, có dấu cộng (⊞) ở giữa đáy. Bấm vào sẽ "mở ra" thành một sơ đồ con. Dùng để giấu chi tiết, giữ sơ đồ chính gọn gàng.
Đây là phần tử duy nhất "làm việc thật". Events chỉ báo hiệu, Gateways chỉ điều hướng — chỉ Activities mới thực sự xử lý.

Gateways (Cổng) — hình thoi ◇ Gateway điều khiển dòng chảy: rẽ nhánh (split) hoặc gộp nhánh (merge). Đây là nơi gây hiểu nhầm nhiều nhất nếu vẽ flowchart tự do, vì vậy BPMN quy định rõ ký hiệu bên trong hình thoi:

  • Exclusive Gateway (XOR) — dấu ✕ hoặc để trống: chọn đúng một nhánh. "Đơn trên 5 triệu thì duyệt cấp trên, dưới 5 triệu thì duyệt cấp dưới" — chỉ một trong hai.
  • Parallel Gateway (AND) — dấu ✛: kích hoạt tất cả nhánh cùng lúc, chạy song song. "Vừa kiểm tra tín dụng, vừa kiểm tra tồn kho".
  • Inclusive Gateway (OR) — dấu ◯ tròn: chọn một hoặc nhiều nhánh tùy điều kiện.
Ở bài này bạn chỉ cần phân biệt được "hình thoi = điểm quyết định/rẽ nhánh, và ký hiệu bên trong cho biết loại". Chi tiết từng gateway sẽ học kỹ ở các bài 15–17.

2. Connecting Objects — sợi dây liên kết

Có phần tử thì phải có dây nối. BPMN dùng ba loại đường nối, và phân biệt chúng cực kỳ quan trọng:

  • Sequence Flow (→ mũi tên liền nét): chỉ thứ tự thực hiện trong cùng một participant. Đây là loại bạn dùng nhiều nhất.
  • Message Flow (⇢ mũi tên nét đứt, đầu mũi tên rỗng): biểu diễn thông điệp trao đổi giữa hai participant khác nhau (giữa hai Pool). Ví dụ "Khách hàng" gửi đơn cho "Cửa hàng".
  • Association (···· đường chấm): nối một Artifact (như ghi chú) với phần tử nó mô tả.
Một lỗi kinh điển của người mới: dùng mũi tên liền nét để nối hai Pool khác nhau. Sai! Giữa hai Pool phải là Message Flow nét đứt.

3. Swimlanes — ai chịu trách nhiệm

Swimlane trả lời câu hỏi "ai làm việc này":

  • Pool: đại diện cho một participant — một tổ chức, một hệ thống, một vai trò lớn. Ví dụ Pool "Ngân hàng" và Pool "Khách hàng".
  • Lane: chia nhỏ một Pool thành các làn theo bộ phận/vai trò. Pool "Ngân hàng" có thể có Lane "Giao dịch viên", Lane "Kiểm soát viên", Lane "Hệ thống core banking".
Mỗi Activity đặt trong Lane nào thì Lane đó chịu trách nhiệm. Bài 12 sẽ đào sâu phần này.

4. Artifacts — chú thích thêm

Đây là nhóm "trang trí và làm rõ", không ảnh hưởng dòng chảy thực thi:

  • Data Object (▣): dữ liệu mà Activity đọc/ghi, ví dụ "Đơn hàng (PDF)".
  • Group (khung nét đứt bo góc): gom nhóm trực quan các phần tử liên quan.
  • Text Annotation (dấu ngoặc [ kèm chữ): ghi chú giải thích cho người đọc.

Tại sao bốn nhóm này đủ mạnh

Điều đẹp đẽ của BPMN là chỉ với bốn nhóm trên, bạn có thể mô tả từ quy trình đơn giản nhất (đăng ký nhận bản tin) đến quy trình phức tạp như quy trình giải ngân khoản vay liên ngân hàng. Tính chuẩn hóa khiến một analyst ở Hà Nội, một developer ở Singapore và một engine Camunda chạy trên server đều "đọc" cùng một sơ đồ và hiểu giống hệt nhau.

Tình huống thực tế

Ví dụ 1 — Tiki và quy trình xử lý đơn hàng đa làn

Hãy hình dung đội vận hành của một sàn thương mại điện tử như Tiki cần mô tả quy trình từ lúc khách bấm "Đặt hàng" đến khi giao thành công. Ban đầu họ vẽ flowchart Word tự do, nhưng khi đưa cho đội kỹ thuật để tự động hóa thì rối tung: không rõ bước nào của khách, bước nào của hệ thống, bước nào của kho.

Khi chuyển sang BPMN 2.0, họ tạo hai Pool: Pool "Khách hàng"Pool "Tiki". Trong Pool Tiki, họ chia ba Lane: "Hệ thống đặt hàng", "Kho vận", "Thanh toán". Start Event nằm ở Pool Khách hàng ("Gửi đơn hàng"), nối sang Pool Tiki bằng Message Flow nét đứt (vì khác participant). Bên trong, một Exclusive Gateway kiểm tra "Còn hàng?" — nếu có thì sang Task "Đóng gói" ở Lane Kho vận, nếu không thì End Event "Hủy đơn & hoàn tiền".

Bài học rút ra: Việc tách Pool/Lane khiến trách nhiệm rõ ràng tức thì. Mũi tên nét đứt giữa hai Pool báo cho IT biết đây là điểm tích hợp giữa hai hệ thống (cần API), còn mũi tên liền nét bên trong là luồng nội bộ. Chỉ một sơ đồ mà cả business lẫn IT đều dùng được.

Ví dụ 2 — Phòng khám tư nhân và Parallel Gateway

Một phòng khám đa khoa tại TP.HCM mô tả quy trình khám tổng quát. Sau khi bệnh nhân làm thủ tục (Task "Đăng ký"), họ cần làm đồng thời ba việc: xét nghiệm máu, chụp X-quang, và đo điện tim — không cái nào phụ thuộc cái nào.

Nếu vẽ nối tiếp bằng ba mũi tên, ai đọc cũng tưởng phải làm tuần tự, mất 90 phút. Nhưng dùng Parallel Gateway (✛) để tách ra ba nhánh song song rồi gộp lại bằng một Parallel Gateway thứ hai, sơ đồ nói rõ: cả ba chạy cùng lúc, bác sĩ tổng hợp kết quả chỉ sau 30 phút. Mỗi nhánh là một Task, đặt trong Lane tương ứng ("Phòng xét nghiệm", "Phòng X-quang", "Phòng tim mạch").

Bài học rút ra: Ký hiệu Gateway không chỉ để đẹp — nó mang ngữ nghĩa thực thi. Parallel khác hẳn Exclusive. Vẽ sai ký hiệu là mô tả sai cả cách quy trình vận hành, dẫn đến tính sai thời gian và nguồn lực.

Ví dụ 3 — Startup fintech và sức mạnh của Sub-process

Một startup ví điện tử mô tả quy trình KYC (xác minh danh tính khách hàng). Quy trình đầy đủ có tới 15 bước: chụp CMND, OCR, đối chiếu khuôn mặt, kiểm tra blacklist, chấm điểm rủi ro... Nếu vẽ hết 15 Task lên một sơ đồ, ban giám đốc nhìn vào hoa mắt.

Họ dùng một Sub-process tên "Xác minh KYC" (ô chữ nhật có dấu ⊞). Ở sơ đồ cấp cao (cho ban giám đốc), KYC chỉ là một ô gọn gàng nằm giữa "Nhận hồ sơ" và "Mở tài khoản". Khi đội kỹ thuật cần chi tiết, họ bấm mở Sub-process ra thành 15 bước con. Cùng một mô hình phục vụ hai đối tượng ở hai mức độ chi tiết.

Bài học rút ra: Sub-process là công cụ kiểm soát độ phức tạp. Đừng cố nhồi mọi thứ vào một màn hình — hãy gói các cụm việc thành Sub-process để mỗi cấp độc giả thấy đúng thứ họ cần. (Cách phân tầng này sẽ học hệ thống ở bài Process hierarchy.)

Hướng dẫn từng bước

Để vẽ một sơ đồ BPMN 2.0 cơ bản đúng chuẩn, hãy làm theo trình tự sau:

  • Xác định ranh giới quy trình. Quy trình bắt đầu từ sự kiện nào (Start Event) và kết thúc ở đâu (End Event)? Viết một câu: "Từ khi... đến khi...". Đây là bộ khung neo toàn bộ sơ đồ.
  • Liệt kê các participant và tạo Pool/Lane. Có bao nhiêu bên tham gia? Mỗi bên là một Pool. Trong mỗi Pool, có những vai trò nào — đó là các Lane. Đặt khung trước khi điền nội dung.
  • Đặt Start Event. Một hình tròn viền mảnh, gắn nhãn động từ + danh từ ("Nhận đơn hàng"). Đặt ở Lane của bên khởi tạo quy trình.
  • Thêm tuần tự các Activity. Mỗi bước công việc là một Task (chữ nhật bo góc), nối bằng Sequence Flow liền nét. Đặt tên theo công thức động từ + đối tượng ("Kiểm tra hồ sơ", "Phê duyệt khoản vay") — tránh danh từ trơ.
  • Chèn Gateway ở mỗi điểm quyết định. Khi dòng chảy rẽ nhánh hoặc gộp lại, dùng hình thoi. Chọn đúng loại: một-trong-nhiều (Exclusive), tất-cả-cùng-lúc (Parallel), hay một-hoặc-nhiều (Inclusive). Gắn nhãn câu hỏi lên Gateway và điều kiện lên mỗi nhánh đi ra.
  • Nối liên lạc giữa các Pool bằng Message Flow. Bất cứ khi nào hai Pool trao đổi thông tin, dùng mũi tên nét đứt — không bao giờ dùng Sequence Flow.
  • Đóng mỗi nhánh bằng End Event. Mọi luồng phải kết thúc rõ ràng ở một hình tròn viền đậm. Không để mũi tên "lơ lửng".
  • Thêm Artifacts để làm rõ. Gắn Data Object cho dữ liệu quan trọng, Text Annotation cho chỗ cần giải thích.
  • Đọc lại bằng "token". Tưởng tượng một "viên bi" (token) chạy từ Start, qua từng phần tử. Nó có đi được trọn vẹn đến End không? Có chỗ nào kẹt, hay rẽ nhánh mà không gộp lại không? (Mô hình token sẽ học sâu ở bài 26.)

Lỗi thường gặp & mẹo

Lỗi 1 — Dùng Sequence Flow nối hai Pool. Đây là lỗi phổ biến nhất. Nhớ: trong cùng Pool dùng mũi tên liền nét; giữa hai Pool dùng Message Flow nét đứt. Sai cái này là sai về mặt ngữ nghĩa, engine sẽ không hiểu.

Lỗi 2 — Lạm dụng hình thoi như "điểm gom mũi tên". Nhiều người dồn 4–5 mũi tên vào một Gateway và cho 3 mũi tên đi ra mà không rõ loại. Một Gateway nên làm một việc: hoặc split, hoặc merge, và phải đồng nhất loại. Đừng vừa Exclusive vừa Parallel trong một hình thoi.

Lỗi 3 — Quên End Event. Mũi tên kết thúc giữa không trung khiến người đọc không biết luồng đã xong hay còn thiếu. Mọi nhánh đều phải đến một End Event.

Lỗi 4 — Đặt tên mơ hồ. Task tên "Đơn hàng" hay "Xử lý" không cho biết việc gì. Luôn dùng động từ + đối tượng: "Phê duyệt đơn hàng", "Xử lý hoàn tiền".

Lỗi 5 — Nhồi quá nhiều vào một sơ đồ. Nếu sơ đồ vượt quá 15–20 phần tử trên một màn hình, hãy gói cụm việc thành Sub-process. Sơ đồ tốt là sơ đồ đọc được trong một lần nhìn.

Mẹo vàng: Khi mới học, hãy dán một "bảng chữ cái BPMN" cạnh màn hình — tròn = Event, chữ nhật bo góc = Activity, thoi = Gateway. Chỉ cần phân biệt được ba hình này, bạn đã đọc được 80% mọi sơ đồ BPMN ngoài thực tế.

Mẹo công cụ: Đừng vẽ bằng PowerPoint. Hãy dùng công cụ chuyên BPMN (như Bizagi Modeler hay draw.io — sẽ giới thiệu ở các bài cuối khóa) vì chúng tự ràng buộc đúng chuẩn, không cho bạn nối sai loại mũi tên.

Bài tập thực hành

Bài 1 — Đọc hiểu. Tìm trên mạng một sơ đồ BPMN mẫu về "quy trình đặt phòng khách sạn". Hãy chỉ ra: có bao nhiêu Pool? Đâu là Start Event, End Event? Có Gateway loại nào? Viết một đoạn 5 câu mô tả lại quy trình bằng lời.

Bài 2 — Vẽ cơ bản. Mô hình hóa quy trình "đăng ký tài khoản trên một ứng dụng" bằng BPMN, gồm: Start Event ("Người dùng nhập thông tin"), một Exclusive Gateway kiểm tra "Email hợp lệ?", hai nhánh (gửi mã xác nhận / báo lỗi), và End Event tương ứng. Dùng đúng ký hiệu cho từng phần tử.

Bài 3 — Hai Pool. Vẽ quy trình "đặt món qua app giao đồ ăn" với hai Pool: "Khách hàng" và "Nhà hàng". Yêu cầu có ít nhất một Message Flow nét đứt giữa hai Pool, và một Parallel Gateway thể hiện nhà hàng vừa "chuẩn bị món" vừa "gọi tài xế" cùng lúc.

Bài 4 — Tự kiểm. Lấy lại sơ đồ ở Bài 2, "chạy token" trong đầu: viên bi đi từ Start có đến được mọi End Event không? Có nhánh nào kẹt hoặc thiếu không? Ghi lại lỗi bạn phát hiện.

Tóm tắt

BPMN 2.0 là ngôn ngữ chuẩn quốc tế để mô hình hóa quy trình, do OMG ban hành — giúp business, IT và cả phần mềm thực thi cùng đọc hiểu một sơ đồ theo cách giống hệt nhau. Toàn bộ ngôn ngữ xoay quanh bốn nhóm phần tử:

  • Flow Objects — Events (tròn, điều gì đó xảy ra), Activities (chữ nhật bo góc, công việc cần làm), Gateways (thoi, rẽ/gộp nhánh).
  • Connecting Objects — Sequence Flow (liền nét, trong cùng Pool), Message Flow (nét đứt, giữa hai Pool), Association (chấm, nối ghi chú).
  • Swimlanes — Pool (một participant) và Lane (vai trò bên trong) trả lời "ai làm".
  • Artifacts — Data Object, Group, Text Annotation để làm rõ thêm.
Ba quy tắc sống còn cần nhớ ngay: viền đậm dần từ Start đến End; mỗi Gateway một loại một nhiệm vụ; và giữa hai Pool luôn dùng Message Flow nét đứt. Nắm chắc "bảng chữ cái" này, bạn đã sẵn sàng để đào sâu từng phần tử ở các bài tiếp theo — bắt đầu từ Pools, Lanes, Events và Gateways. Đây là nền móng cho mọi thứ về sau trong khóa học.