Mapping dữ liệu trong in nhãn là quá trình xác định field nào từ nguồn dữ liệu sẽ điền vào vị trí nào trên template nhãn — ví dụ field “product_name” từ SQL Server điền vào ô tên sản phẩm, field “expiry_date” điền vào ô ngày hết hạn, field “sku_code” trở thành dữ liệu cho barcode và QR code. Mapping sai khiến nhãn in ra có thông tin ở sai vị trí — lỗi nghiêm trọng không thể phát hiện bằng mắt thường nếu không biết dữ liệu gốc. Toàn bộ cấu hình mapping lưu trong file template NiceLabel (.nlbl) hoặc Bartender (.btw) — mở template là có sẵn toàn bộ mapping, không cần cấu hình lại.

5 Loại Mapping Dữ Liệu Trong In Nhãn
Không phải mọi mapping đều là ánh xạ 1:1 đơn giản — 5 loại mapping phục vụ các nhu cầu khác nhau trong thực tế sản xuất và logistics.
| Loại mapping | Mô tả | Ví dụ thực tế |
|---|---|---|
| Direct mapping (1:1) | Field nguồn → field đích không biến đổi | product_name → [Tên sản phẩm trên nhãn] |
| Transform mapping | Biến đổi dữ liệu trước khi điền vào nhãn | expiry_date (YYYY-MM-DD) → “HSD: DD/MM/YYYY” |
| Lookup mapping | Dùng giá trị field A để tra cứu trong bảng phụ | supplier_id → tra bảng suppliers → lấy supplier_name |
| Calculated field | Tính toán từ nhiều field nguồn | production_date + shelf_life_days = expiry_date |
| Conditional mapping | Điền giá trị khác nhau tùy điều kiện | IF hazardous = 'Y' THEN hiển thị cảnh báo đỏ; ELSE hiển thị nhãn bình thường |

Thực Hiện Mapping Trong NiceLabel Designer
NiceLabel Designer có giao diện kéo thả cho mapping — không cần viết code cho các trường hợp thông thường.
- Direct mapping: Kéo tên field từ panel “Data Sources” vào text box hoặc barcode trên nhãn — mapping hoàn thành ngay. Preview hiển thị kết quả thực với dữ liệu từ database
- Transform mapping: Click đúp vào field đã map → mở Expression Editor → nhập công thức biến đổi:
FORMAT(expiry_date, "dd/MM/yyyy"). NiceLabel có thư viện 100+ hàm built-in cho string, date, math, conditional - Lookup mapping: Trong Data Sources, tạo thêm kết nối đến bảng phụ → dùng LOOKUP() function với key là giá trị field hiện tại:
LOOKUP("suppliers", "supplier_id", supplier_id_field, "supplier_name") - Calculated field: Tạo “Calculated Variable” trong Data Sources → nhập formula:
DATEADD("day", shelf_life_days, production_date) - Conditional mapping: Dùng IF() trong Expression Editor:
IF(hazardous = "Y", "⚠ NGUY HIỂM - ĐỌC HƯỚNG DẪN TRƯỚC KHI SỬ DỤNG", ""). Hoặc tạo Dynamic Object có thể ẩn/hiện tùy điều kiện

One-to-Many Mapping: Một Field Điền Nhiều Vị Trí
Một field nguồn có thể map vào nhiều vị trí khác nhau trên cùng nhãn — tính năng quan trọng thường bị bỏ qua.
- Field
sku_codevừa điền vào text box hiển thị SKU, vừa là dữ liệu cho barcode Code 128, vừa là một trong các trường dữ liệu của QR Code — tất cả từ cùng một field nguồn - Field
product_namevừa in ở mặt trước nhãn (font lớn) vừa in ở HRI dưới barcode (font nhỏ) - Khi field nguồn cập nhật, tất cả vị trí đã map đều cập nhật đồng thời — không cần sửa từng chỗ

Lỗi Mapping Phổ Biến Và Cách Phòng Tránh
5 lỗi mapping thường gặp nhất trong triển khai thực tế — tất cả đều phòng ngừa được nếu biết trước.
- Field name thay đổi sau khi ERP upgrade: Column “prod_name” đổi thành “product_name” — mapping cũ trỏ vào field không tồn tại, nhãn in ra ô trống. Phòng ngừa: không dùng tên field ERP gốc trực tiếp — tạo View hoặc alias cố định, NiceLabel kết nối vào View thay vì table
- Encoding charset không nhất quán: Database SQL Server dùng Windows-1252, NiceLabel đọc UTF-8 — tiếng Việt bị lỗi ký tự. Phòng ngừa: chuẩn hóa toàn bộ database về UTF-8 collation; kiểm tra collation khi cài SQL Server mới
- NULL không xử lý: Field trống trả về NULL → nhãn hiển thị “NULL” hoặc trống đột ngột. Phòng ngừa: luôn wrap field trong ISNULL() hoặc COALESCE():
COALESCE(lot_number, "N/A") - Timezone không nhất quán: ERP lưu UTC, nhãn hiển thị UTC thay vì giờ Việt Nam (UTC+7). Phòng ngừa:
DATEADD("hour", 7, utc_timestamp)hoặc cấu hình timezone trong NiceLabel - Print gain làm sai barcode khi dùng X-dimension tính sai: Barcode decode được nhưng symbol contrast thấp. Phòng ngừa: verify bằng barcode verifier sau khi setup mapping lần đầu, điều chỉnh X-dimension nếu cần

Câu Hỏi Thường Gặp
1. Mapping trong NiceLabel có lưu được để tái sử dụng không?
Có — mapping được lưu trong file template .nlbl cùng với layout nhãn, connection string và toàn bộ cấu hình. Chia sẻ file .nlbl là chia sẻ toàn bộ setup. Khi cần triển khai trên máy in mới, chỉ cần copy file template và cập nhật connection string cho database của nhà máy mới.
2. Một template có thể kết nối với nhiều database cùng lúc không?
Có trong NiceLabel — một template có thể kết nối đến nhiều data source khác nhau: một connection đến ERP lấy thông tin sản phẩm, một connection đến WMS lấy thông tin lô hàng, một connection đến bảng lookup lấy tên nhà cung cấp. NiceLabel merge tất cả vào cùng một nhãn.
3. Khi máy in TD-4520TN in từ database, tốc độ có chậm hơn in thủ công không?
Không đáng kể. Thời gian query database thường dưới 100ms với database được index tốt — không ảnh hưởng đến tốc độ in vật lý của TD-4520TN (152mm/s). Chỉ có thể chậm hơn nếu database phản hồi chậm (server quá tải, mạng chậm) hoặc query phức tạp cần join nhiều bảng.
Xem thêm: Máy in nhãn Brother TD-4550DNWB | Brother TD-4520TN | Máy in nhãn Brother
