Bỏ qua, đến nội dung

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: false
  • timeout: 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).