Bỏ qua, đến nội dung

@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ểuMô tả
collectionstringCollection gắn với trigger
appendsstring[]Các relation cần eager-load kèm bản ghi
globalbooleanHiển thị nút ở mọi form/table của collection
contextobjectDữ liệu bổ sung truyền vào workflow

Input / Output

HướngDữ liệuMô tả
InputdataBản ghi hiện tại (kèm relation nếu cấu hình appends)
InputuserThông tin người dùng nhấn nút
OutputresultKết quả trả về từ workflow (nếu sync)
OutputstatusTrạng thái thực thi: resolved / rejected

Tính năng chính

#Tính năngChi tiết
1Trigger từ UIKích hoạt workflow khi user nhấn nút action trên form hoặc table
2Truyền context tự độngDữ liệu bản ghi hiện tại (kèm relation) được truyền vào workflow
3Cấu hình linh hoạtChọn collection và action cụ thể để bind trigger
4Sync responseHỗ trợ trả thông báo về client sau khi workflow hoàn tất
5Nút action tùy chỉnhHiển thị nút riêng trên toolbar hoặc row action

Trường hợp sử dụng

#Kịch bảnMô tả
1Gửi duyệt đơn hàngUser nhấn "Gửi duyệt" trên form Order, workflow gửi notification cho approver
2Xuất báo cáoNhấn nút "Xuất PDF" trên bảng, workflow tạo file và trả link download
3Đồng bộ bản ghiNhấn "Sync to CRM" để đẩy dữ liệu sang hệ thống bên ngoài qua HTTP
4Gửi email xác nhậnNhấn "Gửi email" trên form khách hàng, workflow gửi email template
5Tạo bản ghi liên quanNhấn "Tạo hóa đơn" từ đơn hàng, workflow tự tạo invoice record

Luồng xử lý chi tiết

  1. User nhấn nút action trên giao diện (form hoặc table)
  2. Client gửi POST request kèm recordIdcollectionName
  3. Server load bản ghi từ DB (kèm appends nếu cấu hình)
  4. Server tìm workflow đã bind với action + collection
  5. Workflow engine khởi chạy workflow với context = record data + user info
  6. 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-webhook hoặc plugin-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

PackageVai trò
@digiforce-nc/plugin-workflowWorkflow engine (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/clientClient framework - render nút action (peer)
@digiforce-nc/databaseDatabase ORM - đọc bản ghi (peer)

Mục lục chi tiết