Bỏ qua, đến nội dung

@digiforce-nc/plugin-workflow

Plugin tự động hoá quy trình nghiệp vụ — định nghĩa workflow dạng đồ thị node, kích hoạt bằng sự kiện hoặc lịch hẹn, thực thi jobs theo thứ tự.

Plugin này làm gì?

Hãy hình dung một dây chuyền sản xuất: mỗi workflow là một dây chuyền với các trạm (node) — trạm tính toán, trạm kiểm tra điều kiện, trạm ghi dữ liệu. Khi có sản phẩm (trigger event) đi vào, dây chuyền tự động chạy qua từng trạm cho đến khi hoàn thành.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Kích hoạtLắng nghe sự kiện collection (afterCreate, afterUpdate...) hoặc chạy theo lịch (cron)
2Xử lý luồngDuyệt đồ thị node: tính toán, rẽ nhánh điều kiện, CRUD dữ liệu, chờ duyệt
3Quản lý thực thiGhi log execution, theo dõi trạng thái job, hỗ trợ resume/cancel

Kiến trúc

Triggers (built-in)

TriggerKhi nào chạyVí dụ
CollectionTriggerSự kiện trên collectionKhi tạo đơn hàng mới → gửi email
ScheduleTriggerTheo lịch cronMỗi ngày 8h sáng → tổng hợp báo cáo

Instructions (built-in node types)

InstructionChức năng
calculationTính toán giá trị, gán biến
conditionRẽ nhánh theo điều kiện đơn (if/else)
multi-conditionsRẽ nhánh theo nhiều điều kiện
createTạo bản ghi mới
updateCập nhật bản ghi
destroyXóa bản ghi
queryTruy vấn dữ liệu
outputXuất kết quả
endKết thúc workflow

Database — 7 bảng chính

BảngChứa gì
workflowsĐịnh nghĩa workflow (title, type, config, enabled)
flow_nodesNode trong workflow (type, config, upstreamId, branchIndex)
executionsLịch sử chạy workflow (status, context)
jobsTừng bước thực thi (nodeId, status, result)
workflowTasksTask chờ duyệt
userWorkflowTasksGán task cho user cụ thể (stats: pending, all)
workflowCategoriesPhân loại workflow

ACL — Phân quyền

ResourceQuyềnMô tả
workflows:*, workflows.nodes:*Admin (snippet)Quản lý workflow và nodes
executions:list/get/cancel/destroyAdmin (snippet)Xem và quản lý execution
flow_nodes:update/destroy/...Admin (snippet)Chỉnh sửa nodes
workflowCategories:*Admin (snippet)Phân loại workflow
workflows:listui.workflowsUI hiển thị danh sách
userWorkflowTasks:listMineloggedInUser xem task của mình
*:triggerloggedInKích hoạt workflow

Dependencies

PackageVai trò
@digiforce-nc/databaseDatabase ORM
@digiforce-nc/serverServer framework
@digiforce-nc/evaluatorsĐánh giá biểu thức trong node
@digiforce-nc/loggerGhi log execution riêng biệt
nodejs-snowflakeSinh ID duy nhất cho execution
lru-cacheCache logger instances

Mục lục chi tiết