Bỏ qua, đến nội dung

@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ểuMô tả
expressionstringBiểu thức cần tính (số học, chuỗi, logic)
outputNamestringTên biến lưu kết quả trong workflow context
outputTypestringKiểu kết quả: number, string, boolean

Input / Output

HướngDữ liệuMô tả
InputvariablesBiến workflow được tham chiếu trong biểu thức
InputexpressionBiểu thức cần tính
OutputresultGiá trị kết quả của biểu thức

Tính năng chính

#Tính năngChi tiết
1Biểu thức nhanhNhập biểu thức qua UI, không cần code editor
2Số họcCộng, trừ, nhân, chia, modulo, power
3Ghép chuỗiNối string từ nhiều biến
4LogicSo sánh, AND, OR, ternary
5Nhẹ nhàngNhanh hơn node JavaScript cho tác vụ đơn giản

Trường hợp sử dụng

#Kịch bảnMô tả
1Tính thành tiềnunitPrice * quantity cho line item
2Tính VATsubtotal * 0.1 cho thuế VAT 10%
3Ghép tênlastName + " " + firstName tạo fullName
4Tạo mã đơn"ORD-" + orderId tạo mã đơn hàng
5Kiểm tra ngưỡngamount > 10000000 trả true/false

Toán tử hỗ trợ

LoạiToá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

PackageVai trò
@digiforce-nc/plugin-workflowWorkflow engine (peer)
@digiforce-nc/serverServer framework (peer)

Mục lục chi tiết