Giao diện
@digiforce-nc/plugin-workflow-simple-function
Plugin đăng ký node function đơn giản trong workflow, mở rộng plugin-workflow. Thực thi biểu thức nhanh (expression) mà không cần viết code JavaScript đầy đủ - phù hợp cho phép tính, ghép chuỗi, và logic đơn giản.
Plugin này làm gì?
Node Simple Function cung cấp cách nhanh để thực hiện các phép tính và biến đổi dữ liệu đơn giản. Thay vì mở code editor viết JavaScript, user chỉ cần nhập biểu thức qua UI. Phù hợp cho các tác vụ nhỏ: tính toán số học, ghép chuỗi, so sánh điều kiện.
So sánh với các node tương tự:
- Simple Function: Biểu thức đơn giản, UI thân thiện, nhanh
- Dynamic Calculation: Nhiều evaluator engine, scope mapping phức tạp
- JavaScript: Full JS code, mạnh nhất nhưng phức tạp nhất
Cấu hình
| Tham số | Kiểu | Mô tả |
|---|---|---|
expression | string | Biểu thức cần tính (số học, chuỗi, logic) |
outputName | string | Tên biến lưu kết quả trong workflow context |
outputType | string | Kiểu kết quả: number, string, boolean |
Input / Output
| Hướng | Dữ liệu | Mô tả |
|---|---|---|
| Input | variables | Biến workflow được tham chiếu trong biểu thức |
| Input | expression | Biểu thức cần tính |
| Output | result | Giá trị kết quả của biểu thức |
Tính năng chính
| # | Tính năng | Chi tiết |
|---|---|---|
| 1 | Biểu thức nhanh | Nhập biểu thức qua UI, không cần code editor |
| 2 | Số học | Cộng, trừ, nhân, chia, modulo, power |
| 3 | Ghép chuỗi | Nối string từ nhiều biến |
| 4 | Logic | So sánh, AND, OR, ternary |
| 5 | Nhẹ nhàng | Nhanh hơn node JavaScript cho tác vụ đơn giản |
Trường hợp sử dụng
| # | Kịch bản | Mô tả |
|---|---|---|
| 1 | Tính thành tiền | unitPrice * quantity cho line item |
| 2 | Tính VAT | subtotal * 0.1 cho thuế VAT 10% |
| 3 | Ghép tên | lastName + " " + firstName tạo fullName |
| 4 | Tạo mã đơn | "ORD-" + orderId tạo mã đơn hàng |
| 5 | Kiểm tra ngưỡng | amount > 10000000 trả true/false |
Toán tử hỗ trợ
| Loại | Toán tử | Ví dụ |
|---|---|---|
| Số học | +, -, *, /, % | price * 1.1 |
| So sánh | ==, !=, >, <, >=, <= | amount > 1000 |
| Logic | &&, ||, ! | a > 0 && b > 0 |
| Chuỗi | + (nối) | "Hello " + name |
| Ternary | ? : | age >= 18 ? "adult" : "minor" |
| Nhóm | () | (a + b) * c |
Lưu ý quan trọng
- Biểu thức không hỗ trợ vòng lặp, khai báo biến, hoặc function - chỉ expression
- Nếu cần logic phức tạp (if/else nhiều cấp, loop), dùng JavaScript node
- Chia cho 0 trả về
Infinity- cần kiểm tra điều kiện trước - Biến không tồn tại trong biểu thức sẽ là
undefined, có thể gây kết quảNaN - Kết quả tự động ép kiểu theo
outputType- cẩn thận mất dữ liệu khi ép kiểu
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/plugin-workflow | Workflow engine (peer) |
@digiforce-nc/server | Server framework (peer) |