Bỏ qua, đến nội dung

Ví dụ sử dụng - Dynamic Calculation

Ví dụ 1: Tính tổng đơn hàng với chiết khấu và VAT

Tính thành tiền cho đơn hàng: subtotal sau chiết khấu, cộng phí ship, cộng VAT.

Cấu hình node Dynamic Calculation (bước cuối):

  • engine: math.js
  • expression: (discounted + shipping) * 1.1
  • scope: { "discounted": "node2.result", "shipping": "record.shippingFee" }
  • outputType: number

Mỗi bước tính toán sử dụng kết quả bước trước qua scope mapping. Engine math.js đảm bảo phép tính chính xác với số thập phân.

Ví dụ 2: Tính hoa hồng theo bậc doanh thu

Tính hoa hồng cho nhân viên bán hàng theo bậc: dưới 50M được 5%, 50-100M được 7%, trên 100M được 10%.

Cấu hình node Dynamic Calculation (tính rate):

  • engine: formula.js
  • expression: IF(revenue >= 100000000, 0.10, IF(revenue >= 50000000, 0.07, 0.05))
  • scope: { "revenue": "aggregateNode.result" }
  • outputType: number

Engine formula.js hỗ trợ hàm IF lồng nhau giống spreadsheet, phù hợp cho logic phân bậc. Kết quả rate được nhân với doanh thu ở node tiếp theo.

Ví dụ 3: Tính điểm ưu tiên khách hàng

Tính điểm ưu tiên dựa trên nhiều yếu tố: số đơn hàng, tổng chi tiêu, thời gian là khách hàng.

Cấu hình node Dynamic Calculation:

  • engine: math.js
  • expression: orderCount * 0.3 + spendScore * 0.5 + loyaltyYears * 0.2
  • scope: { "orderCount": "agg1.result", "spendScore": "agg2.result / 1000000", "loyaltyYears": "dateCalc.result" }
  • outputType: number

Scope mapping kết hợp kết quả từ nhiều node trước (Aggregate, Date Calculation) vào một biểu thức tính điểm tổng hợp.