Giao diện
Cấu hình node - Subflow
Node gọi workflow con (sub-routine): truyền tham số vào, nhận kết quả trả về, hỗ trợ sync và async.
Bảng tham số cấu hình
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|---|
workflowId | string | Có | — | ID hoặc key của workflow con cần gọi |
params | object | Không | {} | Tham số truyền vào workflow con (mapping từ biến cha) |
timeout | number | Không | 30000 | Thời gian tối đa chờ workflow con hoàn thành (ms), chỉ cho sync |
async | boolean | Không | false | true: không chờ kết quả; false: chờ kết quả |
Dữ liệu đầu ra (Output)
| Tên | Kiểu | Mô tả |
|---|---|---|
result | any | Kết quả trả về từ workflow con (chỉ khi sync) |
status | string | resolved, rejected, hoặc timed_out |
So sánh Sync vs Async
| Đặc điểm | Sync (async: false) | Async (async: true) |
|---|---|---|
| Chờ kết quả | Có | Không |
| Nhận result | Có | Không |
| Timeout | Áp dụng | Không áp dụng |
| Workflow cha | Dừng chờ | Tiếp tục ngay |
| Use case | Logic phụ thuộc kết quả | Fire-and-forget |
Lợi ích tái sử dụng workflow con
| Lợi ích | Mô tả |
|---|---|
| Tái sử dụng | Viết logic 1 lần, gọi từ nhiều workflow cha |
| Modular | Chia workflow lớn thành module nhỏ, dễ quản lý |
| Testing | Test từng workflow con độc lập |
| Bảo trì | Sửa workflow con, tất cả workflow cha tự động cập nhật |
Lưu ý quan trọng
- Workflow con phải tồn tại và ở trạng thái enabled khi subflow node chạy
- Đệ quy (gọi chính mình) cần cẩn thận - đặt maxDepth hoặc condition dừng
- Params là bản copy - thay đổi trong workflow con không ảnh hưởng workflow cha
- Async mode: workflow cha tiếp tục ngay, không nhận result từ workflow con
- Timeout chỉ áp dụng cho sync mode - async mode không có timeout