Bỏ qua, đến nội dung

@digiforce-nc/plugin-workflow-json-variable-mapping

Plugin đăng ký node mapping biến JSON trong workflow, mở rộng plugin-workflow. Chuyển đổi cấu trúc (shape) của object JSON từ dạng này sang dạng khác bằng cách ánh xạ field.

Plugin này làm gì?

Node JSON Variable Mapping nhận một hoặc nhiều object JSON nguồn và tạo object mới theo cấu trúc đích. Mỗi field trong object đích được ánh xạ từ một path trong object nguồn hoặc từ biến workflow. Phù hợp để chuẩn bị dữ liệu trước khi gửi API hoặc lưu vào DB.

Ví dụ điển hình: Hệ thống nội bộ dùng firstName + lastName, nhưng API CRM bên ngoài yêu cầu first_name + last_name. Node này chuyển đổi giữa hai format mà không cần viết code.

Cấu hình

Tham sốKiểuMô tả
mappingsarrayDanh sách rules ánh xạ field
mappings[].sourcestringPath nguồn (biến workflow hoặc dot notation)
mappings[].targetstringTên field đích trong object kết quả
mappings[].typestringKiểu chuyển đổi: direct, template, constant
mappings[].valueanyGiá trị cố định (khi type = constant)

Input / Output

HướngDữ liệuMô tả
Inputsource objectsMột hoặc nhiều object/biến từ workflow context
Inputmapping rulesQuy tắc ánh xạ field nguồn sang field đích
OutputresultObject mới theo cấu trúc đích

Tính năng chính

#Tính năngChi tiết
1Field mappingÁnh xạ trực tiếp field nguồn sang field đích
2Rename fieldĐổi tên field (ví dụ: firstName sang first_name)
3Constant valueGán giá trị cố định cho field đích
4Nested sourceĐọc từ nested path: order.customer.email
5Multi-sourceKết hợp dữ liệu từ nhiều biến workflow vào một object
6TemplateTạo giá trị bằng template kết hợp nhiều biến

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

#Kịch bảnMô tả
1Chuẩn bị API payloadTransform từ cấu trúc nội bộ sang format API bên ngoài
2Đổi tên fieldChuyển camelCase sang snake_case cho hệ thống khác
3Merge dữ liệuGộp thông tin từ node query + node HTTP thành một object
4Tạo audit logTạo object log từ nhiều biến: user, action, timestamp
5Chuẩn hóa dataĐồng nhất format dữ liệu từ nhiều nguồn khác nhau

Ví dụ mapping

Source pathTarget fieldTypeKết quả
order.customerNamenamedirectCopy giá trị
order.items.lengthitemCountdirectSố lượng items
sourceconstant"digiforce"
order.idreftemplate"ORD-[order.id]"
user.emailcontact_emaildirectRename field

Lưu ý quan trọng

  • Nếu source path không tồn tại, field đích sẽ là undefined (không gây lỗi)
  • Type constant bỏ qua source - luôn gán giá trị cố định
  • Type template cho phép ghép nhiều biến: "Order #[orderId] - [customerName]"
  • Mapping không hỗ trợ transform kiểu dữ liệu - dùng Dynamic Calculation nếu cần
  • Thứ tự mapping rules quan trọng khi có field đích trùng nhau (rule sau ghi đè)

Dependencies

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

Mục lục chi tiết