Giao diện
@digiforce-nc/plugin-workflow-loop
Plugin đăng ký node vòng lặp (loop) trong workflow, mở rộng plugin-workflow. Lặp qua từng phần tử trong mảng và thực thi nhánh con (child branch) cho mỗi phần tử.
Plugin này làm gì?
Node Loop nhận một mảng dữ liệu và lặp qua từng phần tử. Với mỗi phần tử, nhánh con bên trong loop được thực thi với phần tử đó làm context. Sau khi tất cả phần tử được xử lý, workflow tiếp tục node tiếp theo.
Loop thực thi tuần tự (sequential) - phần tử sau chỉ bắt đầu khi phần tử trước hoàn thành. Nếu cần xử lý song song, kết hợp với Parallel node.
Cấu hình
| Tham số | Kiểu | Mô tả |
|---|---|---|
target | string | Biến workflow chứa mảng cần lặp |
condition | object | Điều kiện dừng loop sớm (tùy chọn) |
maxIterations | number | Giới hạn số vòng lặp tối đa (bảo vệ infinite loop) |
Input / Output
| Hướng | Dữ liệu | Mô tả |
|---|---|---|
| Input | target | Mảng dữ liệu cần lặp |
| Input | item | Phần tử hiện tại (trong nhánh con) |
| Input | index | Chỉ số vòng lặp hiện tại (0-based) |
| Output | results | Mảng kết quả từ tất cả vòng lặp |
| Output | count | Tổng số vòng lặp đã thực thi |
Tính năng chính
| # | Tính năng | Chi tiết |
|---|---|---|
| 1 | Iterate array | Lặp qua từng phần tử trong mảng |
| 2 | Child branch | Mỗi vòng lặp thực thi đầy đủ nhánh con |
| 3 | Context per item | Mỗi vòng có biến item và index riêng |
| 4 | Break condition | Có thể dừng sớm khi thỏa điều kiện |
| 5 | Safe guard | maxIterations ngăn infinite loop |
Trường hợp sử dụng
| # | Kịch bản | Mô tả |
|---|---|---|
| 1 | Xử lý đơn hàng | Lặp qua từng line item, kiểm tra tồn kho cho mỗi sản phẩm |
| 2 | Gửi email hàng loạt | Lặp qua danh sách recipients, gửi email cá nhân hóa |
| 3 | Sync dữ liệu | Lặp qua mảng records, tạo/cập nhật từng bản ghi trong DB |
| 4 | Validate danh sách | Kiểm tra validation cho từng item, thu thập lỗi |
| 5 | Batch processing | Xử lý tuần tự từng phần tử trong batch import |
Biến khả dụng trong nhánh con
| Biến | Kiểu | Mô tả |
|---|---|---|
item | any | Phần tử hiện tại đang xử lý |
index | number | Chỉ số hiện tại (0-based) |
length | number | Tổng số phần tử trong mảng |
| context cha | any | Tất cả biến workflow cha vẫn truy cập được |
Lưu ý quan trọng
- Loop chạy tuần tự - mảng 100 phần tử sẽ mất thời gian gấp 100 lần 1 phần tử
maxIterationsmặc định thường là 100 - tăng lên nếu mảng lớn hơn- Nhánh con có thể chứa bất kỳ node nào (kể cả loop lồng nhau)
- Biến
itembị ghi đè mỗi vòng - lưu vào Variable node nếu cần giữ lại - Nếu nhánh con lỗi ở 1 phần tử, toàn bộ loop dừng (trừ khi có error handling)
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/plugin-workflow | Workflow engine (peer) |
@digiforce-nc/server | Server framework (peer) |