Giao diện
@digiforce-nc/plugin-workflow-action-trigger
Plugin đăng ký trigger kích hoạt workflow từ action button trên giao diện người dùng, mở rộng plugin-workflow. Khi user nhấn nút trên form hoặc bảng dữ liệu, workflow tương ứng được khởi chạy với toàn bộ context bản ghi hiện tại.
Plugin này làm gì?
Đây là trigger phổ biến nhất để kết nối thao tác UI với quy trình tự động. Người dùng nhấn một nút action (ví dụ "Gửi duyệt", "Xác nhận đơn hàng"), hệ thống thu thập dữ liệu bản ghi rồi kích hoạt workflow đã cấu hình.
Nút action có thể đặt trên:
- Form toolbar - nút ở đầu form chi tiết
- Table row action - nút trên từng dòng bảng
- Table toolbar - nút tác vụ hàng loạt
Cấu hình
| Tham số | Kiểu | Mô tả |
|---|---|---|
collection | string | Collection gắn với trigger |
appends | string[] | Các relation cần eager-load kèm bản ghi |
global | boolean | Hiển thị nút ở mọi form/table của collection |
context | object | Dữ liệu bổ sung truyền vào workflow |
Input / Output
| Hướng | Dữ liệu | Mô tả |
|---|---|---|
| Input | data | Bản ghi hiện tại (kèm relation nếu cấu hình appends) |
| Input | user | Thông tin người dùng nhấn nút |
| Output | result | Kết quả trả về từ workflow (nếu sync) |
| Output | status | Trạng thái thực thi: resolved / rejected |
Tính năng chính
| # | Tính năng | Chi tiết |
|---|---|---|
| 1 | Trigger từ UI | Kích hoạt workflow khi user nhấn nút action trên form hoặc table |
| 2 | Truyền context tự động | Dữ liệu bản ghi hiện tại (kèm relation) được truyền vào workflow |
| 3 | Cấu hình linh hoạt | Chọn collection và action cụ thể để bind trigger |
| 4 | Sync response | Hỗ trợ trả thông báo về client sau khi workflow hoàn tất |
| 5 | Nút action tùy chỉnh | Hiển thị nút riêng trên toolbar hoặc row action |
Trường hợp sử dụng
| # | Kịch bản | Mô tả |
|---|---|---|
| 1 | Gửi duyệt đơn hàng | User nhấn "Gửi duyệt" trên form Order, workflow gửi notification cho approver |
| 2 | Xuất báo cáo | Nhấn nút "Xuất PDF" trên bảng, workflow tạo file và trả link download |
| 3 | Đồng bộ bản ghi | Nhấn "Sync to CRM" để đẩy dữ liệu sang hệ thống bên ngoài qua HTTP |
| 4 | Gửi email xác nhận | Nhấn "Gửi email" trên form khách hàng, workflow gửi email template |
| 5 | Tạo bản ghi liên quan | Nhấn "Tạo hóa đơn" từ đơn hàng, workflow tự tạo invoice record |
Luồng xử lý chi tiết
- User nhấn nút action trên giao diện (form hoặc table)
- Client gửi POST request kèm
recordIdvàcollectionName - Server load bản ghi từ DB (kèm appends nếu cấu hình)
- Server tìm workflow đã bind với action + collection
- Workflow engine khởi chạy workflow với context = record data + user info
- Kết quả trả về client dưới dạng response message
Lưu ý quan trọng
- Trigger chỉ hoạt động khi user nhấn nút trên giao diện, không hỗ trợ trigger từ API trực tiếp
- Nếu cần trigger từ API, sử dụng
plugin-workflow-webhookhoặcplugin-workflow-request-interceptor - Kết hợp với
plugin-workflow-response-messageđể gửi thông báo kết quả về client - Mỗi nút action chỉ bind được một workflow, nhưng workflow đó có thể gọi nhiều subflow
- Field
appendsảnh hưởng đến hiệu suất - chỉ load relation thực sự cần thiết
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/plugin-workflow | Workflow engine (peer) |
@digiforce-nc/server | Server framework (peer) |
@digiforce-nc/client | Client framework - render nút action (peer) |
@digiforce-nc/database | Database ORM - đọc bản ghi (peer) |