Giao diện
@digiforce-nc/plugin-workflow-approval-process
Plugin đăng ký node phê duyệt nhiều bước (approval process) trong workflow, mở rộng plugin-workflow. Hỗ trợ cấu hình assignees, ngưỡng phê duyệt, form phê duyệt, và quy trình nhiều cấp.
Plugin này làm gì?
Node Approval Process tạm dừng workflow để chờ một hoặc nhiều người phê duyệt xác nhận. Mỗi bước phê duyệt có thể cấu hình danh sách assignees, ngưỡng (threshold) đồng ý, và form nhập lý do. Workflow chỉ tiếp tục khi đạt đủ điều kiện phê duyệt.
Approval Process xây dựng trên nền Manual node, bổ sung thêm:
- Logic tính threshold (đủ số người approve)
- Chuỗi nhiều cấp phê duyệt (multi-level)
- Timeout và escalation tự động
Cấu hình
| Tham số | Kiểu | Mô tả |
|---|---|---|
assignees | array | Danh sách user/role được phân công phê duyệt |
threshold | number | Số lượng hoặc tỷ lệ approve cần đạt (ví dụ: 2 hoặc 100%) |
mode | string | Chế độ: all (tất cả), any (bất kỳ), percentage |
form | object | Cấu hình form nhập lý do khi approve/reject |
timeout | number | Thời gian tối đa chờ phê duyệt (ms), 0 = không giới hạn |
onTimeout | string | Hành vi khi hết thời gian: approve, reject, escalate |
escalateTo | array | Danh sách user nhận escalation khi timeout |
Input / Output
| Hướng | Dữ liệu | Mô tả |
|---|---|---|
| Input | data | Dữ liệu bản ghi cần phê duyệt |
| Input | assignees | Danh sách người phê duyệt (có thể động từ biến) |
| Output | status | approved / rejected / timed_out |
| Output | approvals | Danh sách chi tiết ai đã approve/reject |
| Output | comment | Lý do từ form phê duyệt |
Tính năng chính
| # | Tính năng | Chi tiết |
|---|---|---|
| 1 | Nhiều cấp phê duyệt | Chuỗi nhiều node approval nối tiếp nhau |
| 2 | Threshold linh hoạt | Cấu hình số người / tỷ lệ cần approve |
| 3 | Form phê duyệt | Người phê duyệt nhập lý do, ghi chú qua form |
| 4 | Timeout & Escalation | Tự động xử lý khi quá thời gian chờ |
| 5 | Dynamic assignees | Danh sách phê duyệt từ biến workflow |
Trường hợp sử dụng
| # | Kịch bản | Mô tả |
|---|---|---|
| 1 | Duyệt đơn mua hàng | Manager, Director, CFO theo giá trị đơn hàng |
| 2 | Duyệt nghỉ phép | Trưởng phòng duyệt, HR xác nhận |
| 3 | Duyệt nội dung | Editor review, Chief Editor approve trước khi publish |
| 4 | Duyệt chi phí | Theo threshold: dưới 10M tự động, trên 10M cần giám đốc |
Lưu ý quan trọng
- Node Approval kế thừa từ Manual node - cần cài
plugin-workflow-manual - Khi mode =
percentage, threshold là số phần trăm (ví dụ: 60 = 60%) - Nếu một approver reject, workflow có thể dừng ngay tùy cấu hình
- Timeout chỉ hoạt động khi server đang chạy - restart server sẽ reschedule
- Sử dụng node Condition sau Approval để phân nhánh theo kết quả approve/reject
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/plugin-workflow | Workflow engine (peer) |
@digiforce-nc/plugin-workflow-manual | Manual node base (peer) |
@digiforce-nc/server | Server framework (peer) |
@digiforce-nc/client | Client - UI phê duyệt (peer) |
@digiforce-nc/database | Database ORM (peer) |