1. Khái niệm
Event hay sự kiện là việc xảy ra trong một luồng quy trình của BPMN, gồm 3 loại chính:
Sự kiện bắt đầu (start event): Xác định điểm bắt đầu của quy trình
Sự kiện gián đoạn/ chuyển đổi (Intermediate): Xác định một điểm chuyển đổi hoặc gián đoạn trong quy trình.
Sự kiện kết thúc (end event): Xác định điểm kết thúc của quy trình.
Start Event | Intermediate Event | End Event | |
Mục đích | Xác định điểm bắt đầu | Xác định điểm chuyển đổi/gián đoạn | Xác định điểm kết thúc |
Số lượng | Chỉ 1 sự kiện/luồng | Có thể có nhiều sự kiện/luồng | Chỉ 1 sự kiện/luồng |
Kiểu kích hoạt | Luôn tự kích hoạt | Tùy thuộc vào điều kiện |
|
Shape | Tròn, viền đơn | Hình tròn kép | Tròn, viền đậm |
2 Event marker
Giống như activity, các sự kiện có thể chứa marker để bổ nghĩa cho sự kiện xảy ra.
2.1 Start event
Có 3 loại start event dựa trên mục đích sử dụng và hành vi gồm:
Standard (cơ bản): là loại cơ bản nhất cho 1 quy trình.
Event sub-process interrupting:
Start event được sử dụng cho quy trình con (sub-process).
Loại event này sẽ ngắt luồng chính của quy trình để trigger luồng phụ (sub-process).
Event sub-process non-interrupting:
Tương tự với event sub-process interrupting, đây là event sử dụng cho quy trình con.
Loại event này không ngắt luồng chính mà chạy song song với luồng chính.
Marker | Icon | Phân loại | Ý nghĩa | Ví dụ |
None |
| Start Event đơn giản, tự kích hoạt | Khách hàng truy cập trang web bán hàng | |
Message |
| Kích hoạt bởi một message | Hệ thống nhận thông báo thanh toán thành công từ hệ thống thanh toán | |
Timer |
| Kích hoạt sau một khoảng thời gian | Quy trình tự động bắt đầu sau 24 giờ | |
Timer |
| Tương tự như trên | ||
Escalation |
| Escalation trigger quy trình xử lý lỗi nghiêm trọng - lỗi mà cần 1 quy trình riêng biệt để handle | Lối thanh toán hệ thống, cần kích hoạt quy trình thanh toán ngoại lệ bên ngoài. | |
Escalation |
| Tương tự bên trên | ||
Conditional |
| Kích hoạt dựa trên điều kiện | Quy trình bắt đầu nếu khách hàng chọn phương thức thanh toán "Thanh toán khi nhận hàng" | |
Conditional |
| Tương tự bên trên | ||
Error |
|
| Ví dụ, thanh toán với thẻ không hợp lệ --> Error event | |
Compensation |
| Sự kiện bắt đầu một quy trình bù đắp như có nói ở 1.1 |
| |
Signal |
| Kích hoạt bởi một signal | Hệ thống nhận signal từ một dịch vụ bên ngoài. Ví dụ như MoMo tự tạo giao dịch khi có yêu cầu thanh toán từ web Ecommerce | |
Signal |
| tương tự như trên | ||
Multiple |
| Kích hoạt bởi bất kỳ điều kiện nào được liệt kê | Quy trình bắt đầu khi khách hàng chọn thanh toán cho đơn hàng, hoặc thanh toán hoá đơn tiền điện, hoặc hoá đơn điện thoại... | |
Multiple |
| tương tự như trên | ||
Parallel Multiple Event |
| Tương tự với multiple event, tuy nhiên các sự kiện phải được kích hoạt đồng thời. | Ví dụ với quy trình xử lý đơn hàng. Parallel Multiple Event chỉ được kích hoạt khi cả ba sự kiện "Xác nhận thanh toán", "Kiểm tra hàng hóa", và "Đóng gói" cùng xảy ra. | |
Parallel Multiple Event |
|
2.2 Intermediate event
Cũng giống như start event, các sư kiện gián đoạn (intermediate event) cũng được chia thành các loại khác nhau dựa trên mục đích sử dụng:
Catching:
Loại event này chờ đợi một sự kiện xảy ra bên trong một hoạt động.
Khi sự kiện kích hoạt được nhận (catch), nó ngắt hoặc tạm dừng hoạt động và có thể chuyển luồng quy trình theo hướng mới.
Throwing:
Loại event này gửi một tin nhắn, tín hiệu hoặc kích hoạt sự kiện khác.
Nó được đặt bên trong hoặc trên đường viền (boundary) của một hoạt động.
Khi hoạt động hoàn thành, event này được kích hoạt và gửi dữ liệu cần thiết.
Boundary:
Loại event này được đính vào biên giới của một hoạt động, cho phép xử lý lỗi hoặc sự kiện bên ngoài có thể ảnh hưởng đến hoạt động đó.
Xảy ra bất kể trạng thái của hoạt động là đang chạy, bị lỗi, hoặc đã hoàn thành.
Boundary được chia làm 2 loại:
Boundary interrupting: ngắt hoạt động khi sự kiện được xảy ra.
Boundary non-interrupting: không ngắt hoạt động, chạy song song với hoạt động khi sự kiện được xảy ra
Marker | Icon | Phân loại | Ý nghĩa | Ví dụ |
Message |
|
|
| |
Message |
|
| ||
Message |
|
| Đơn hàng được thanh toán thành công, Event Message gửi email thông báo tới khách hàng | |
Timer |
|
| Với hành động "Chuẩn bị đơn hàng" sau 4h kích hoạt sự kiện huỷ đơn và thông báo đơn hàng thất bại. | |
Timer |
|
| Hành động "Chuẩn bị đơn hàng" sau 2h kích hoạt sự kiện gửi thông báo cho khách đơn hàng vẫn đang được chuẩn bị. Hành động "Chuẩn bị đơn hàng" vẫn đang tiếp tục xảy ra. | |
Escalation |
|
| Hành động "Chuẩn bị đơn hàng" khi gặp sự cố sẽ trigger luồng xử lý sự cố, huỷ đơn hàng, hoàn tiền cho khách. | |
Escalation |
|
| Hành động "Chuẩn bị đơn hàng" khi gặp sự cố sẽ trigger luồng xác minh sự cố, gửi thông báo tới khách hàng về tình trạng đơn. Đơn không cần huỷ. | |
Escalation |
|
| Hoạt động "Thanh toán đơn hàng" có đầu ra là cổng OR (EXclusive Gateway):
Trường hợp thanh toán lỗi có thể trigger sự kiện escalation để xử lý lỗi. | |
Conditional |
|
|
| |
Conditional |
|
|
| |
Link |
|
| ||
Link |
| Là một cặp với Link throwing event. Sử dụng để bắt đầu 1 sự kiện được gửi đi từ Link Throwing bên dưới. |
| |
Error |
|
| Hoạt động "Chuẩn bị hàng" có lỗi hết hàng, gửi email thông báo tới khách hàng hoặc bộ phận cskh & cập nhật trạng thái đơn hàng. | |
Cancel |
| Cho phép hủy một hoạt động đang chạy dựa trên điều kiện được xác định. Luôn ngắt hoạt động khi được trigger. | Hoạt động "Thanh toán" có Cancel event "Huỷ thanh toán", trigger luồng xử lý huỷ gồm: xác nhận với khách hàng, hoàn tiền, cập nhật trạng thái... | |
Compensation |
| Thể hiện sự kiện đền bù được kích hoạt nếu một lỗi hoặc sự kiện bất ngờ được xảy ra trong 1 activity. |
| |
Compensation |
|
|
| |
Signal |
|
|
| |
Signal |
| |||
Signal |
|
|
| |
Multiple |
| Catching:
Boundary Interrupting:
| Ví dụ với hoạt động "Xử lý đơn hàng":
| |
Multiple |
| |||
Multiple |
|
| Hoạt động "Duyệt đơn hàng" khi trigger multiple event throwing sẽ trigger 2 hành động:
| |
Parallel Multiple |
|
|
| |
Parallel Multiple |
|
2.3 End event
Không giống như Start hay Intermediate event, end event chỉ có một loại duy nhất là standard, biểu diễn bằng hình tròn có viền đậm.
End event cũng sử dụng marker để bổ nghĩa cho sự kiện
Marker | Icon | Ý nghĩa | Ví dụ |
None | |||
Message |
|
| |
Escalation |
|
| |
Error |
|
| |
Cancel |
|
| |
Compensation |
|
| |
Signal |
|
| |
Multiple |
|
| |
Terminate |
|
|
Trên đây là toàn bộ các events hiện có của BPMN. Event là một phần quan trọng trong BPMN, đóng vai trò là điểm đánh dấu sự khởi đầu, kết thúc hoặc thay đổi hướng đi trong quy trình. Hiểu rõ các loại Event và cách sử dụng chúng sẽ giúp bạn xây dựng mô hình BPMN chính xác và hiệu quả.
Bài viết cùng series:
Comments