Giao diện
Ví dụ sử dụng - Subflow
Ví dụ 1: Logic tính thuế dùng chung
Workflow "tính thuế" được gọi từ nhiều workflow đơn hàng khác nhau (bán lẻ, bán buôn, xuất khẩu).
Cấu hình node Subflow:
workflowId:"wf-calculate-tax"params:{ "amount": "record.subtotal", "orderType": "retail" }async:falsetimeout:10000
Workflow tính thuế chứa logic phức tạp (phân loại VAT, thuế GTGT, miễn thuế xuất khẩu). Viết 1 lần, gọi từ workflow bán lẻ, bán buôn, xuất khẩu với orderType khác nhau.
Ví dụ 2: Chia nhỏ quy trình tuyển dụng
Quy trình tuyển dụng gọi các sub-workflow: sàng lọc, phỏng vấn, offer.
Cấu hình Subflow sàng lọc:
workflowId:"wf-screening"params:{ "candidateId": "record.id", "position": "record.position" }async:false
Cấu hình Subflow gửi offer:
workflowId:"wf-send-offer"async:true(fire-and-forget, không cần chờ)
Mỗi giai đoạn là workflow con riêng, dễ test và bảo trì. Giai đoạn offer dùng async vì workflow cha không cần đợi kết quả.
Ví dụ 3: Workflow đệ quy xử lý cây danh mục
Xử lý cây danh mục sản phẩm: mỗi danh mục gọi chính mình cho danh mục con.
Cấu hình node Subflow:
workflowId:"wf-update-category-tree"(chính workflow hiện tại)params:{ "parentId": "item.id", "depth": "currentDepth + 1" }async:false
Khi cập nhật path danh mục cha, tất cả con/cháu cần cập nhật theo. Đệ quy giải quyết bài toán cây tự nhiên. Truyền depth để đặt điều kiện dừng (VD: max 5 cấp).