Giao diện
@digiforce-nc/plugin-workflow-custom-action-trigger
Plugin đăng ký trigger kích hoạt workflow từ custom action button, mở rộng plugin-workflow. Tương tự action-trigger nhưng dành cho các nút được tạo qua cơ chế customize:triggerWorkflows, cho phép gắn workflow vào bất kỳ action tùy chỉnh nào.
Plugin này làm gì?
Custom Action Trigger cho phép developer đăng ký các nút action riêng (không phải nút mặc định của hệ thống) và gắn chúng với workflow. Khi user nhấn nút custom, hệ thống thu thập context tùy chỉnh rồi kích hoạt workflow.
So với Action Trigger tiêu chuẩn:
- Action Trigger: Nút hệ thống, bind 1:1 với workflow, context là record
- Custom Action Trigger: Nút tùy chỉnh qua
customize:triggerWorkflows, hỗ trợ context mở rộng, có thể bind nhiều workflow
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 |
triggerAction | string | Tên custom action kích hoạt trigger |
context | object | Dữ liệu bổ sung truyền vào workflow |
bindWorkflows | string[] | Danh sách workflow key được bind |
Input / Output
| Hướng | Dữ liệu | Mô tả |
|---|---|---|
| Input | data | Bản ghi hiện tại hoặc dữ liệu custom từ action |
| Input | user | Thông tin người dùng thực hiện action |
| Input | params | Tham số bổ sung từ custom action |
| Output | result | Kết quả trả về từ workflow |
| Output | status | Trạng thái: resolved / rejected |
Tính năng chính
| # | Tính năng | Chi tiết |
|---|---|---|
| 1 | Custom action | Đăng ký nút action tùy chỉnh ngoài các nút hệ thống |
| 2 | customize:triggerWorkflows | Sử dụng cơ chế customize để bind workflow vào action |
| 3 | Context linh hoạt | Truyền dữ liệu tùy chỉnh (không chỉ record) vào workflow |
| 4 | Nhiều workflow | Một custom action có thể kích hoạt nhiều workflow cùng lúc |
| 5 | Đồng bộ/bất đồng bộ | Hỗ trợ cả hai chế độ thực thi |
Trường hợp sử dụng
| # | Kịch bản | Mô tả |
|---|---|---|
| 1 | Bulk action | Nút "Duyệt hàng loạt" trên table, trigger workflow cho nhiều bản ghi |
| 2 | Action ngoài CRUD | Nút "Tính lại giá" không thuộc CRUD, gọi workflow xử lý logic |
| 3 | Action có form input | Nút mở dialog nhập lý do, truyền lý do vào workflow |
| 4 | Integration button | Nút "Đồng bộ Shopee" gọi workflow tích hợp bên ngoài |
| 5 | Multi-step wizard | Nút khởi tạo quy trình nhiều bước với context tùy chỉnh |
Lưu ý quan trọng
- Plugin này phụ thuộc vào
plugin-workflow-action-trigger- cần cài cả hai - Custom action phải được đăng ký trước khi bind workflow
- Khi bind nhiều workflow cho một action, các workflow chạy song song
- Context tùy chỉnh cần được validate ở phía client trước khi gửi
- Sử dụng
triggerActionđể phân biệt giữa các custom action khác nhau
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/plugin-workflow | Workflow engine (peer) |
@digiforce-nc/plugin-workflow-action-trigger | Action trigger base (peer) |
@digiforce-nc/server | Server framework (peer) |
@digiforce-nc/client | Client framework (peer) |
@digiforce-nc/database | Database ORM (peer) |