Tổng Quan Hệ Thống
Nguyên tắc cốt lõi: WMS là trung tâm quyết định nghiệp vụ, PLC chỉ trigger và hỏi trạng thái, SAP chỉ nhận dữ liệu cuối ngày (batch).
6 Luồng Vận Hành Chính (Flows)
Tạo PO & Chia Pallet
- SAP gửi PO → WMS check đ/k kiện auto.
- 1 PO = 1 Receipt (Index theo năm:
26000001). - WMS tính:
FullPallet = floor(TotalQty / QtyPerPallet).
Pallet ID Format:
ABI-2600000101
In & Verify Tự Động
- PLC gọi
GET /next-pallet, WMS tìm pallet WAIT_PRINT. - WMS gửi lệnh in → PRINTED.
- PLC dán tem. QR Scan quét →
POST /verify.
Nếu dữ liệu khớp 100%:
VERIFIEDWMS Lock toàn bộ trường in.
Xử Lý Lỗi & Retry
- Nếu Verify Fail → VERIFY_FAILED
-
RetryCount++.
Scan Cuối Line (Manual)
Nhân viên dùng Handheld Scanner cuối line để xác nhận dán tem đúng, không lỗi vật lý.
Điều kiện bắt buộc:
Chưa Verify → Không cho check. Không gửi SAP ngay.
Đồng Bộ SAP Cuối Ngày
Scheduler chạy lúc 23:00 hoặc Trigger Manual. Gom theo lô (Batch).
Chỉ sync Pallet đạt đủ:
SYNCED
SYNC_PENDING
Reprint Bằng Máy Phụ
- Không sinh dữ liệu mới. Lấy snapshot đã lock.
- In đúng 100% nội dung ban đầu.
- Ghi log: User, Thời gian, Lý do.
Điều kiện cho phép Reprint:
Toàn Bộ Vòng Đời Trạng Thái Pallet (End-to-End)
POST /api/purchase-order
Whitelist? qty > 0?
Sinh PalletID: ABI-2600000101
→ CREATED → WAIT_PRINT
Kiểm tra queue & điều kiện
Gửi lệnh ZPL → Printer
Status: PRINTING
POST /api/pallet-ready → WMS
Delay 2 giây → Kích hoạt Tamp
Tem ra đầu in → PLC dán
So sánh 7 trường
→ VERIFIED
🔒 LOCK DATA
retry_count++
≤3: WAIT_PRINT
>3: ERROR+ALARM
Conveyor Run
Retry / ALARM
Scan tem vừa dán
Nhận Good Receipt
(Batch từ WMS)
→ SYNCED
Status: FINAL_CHECKED
Gửi Good Receipt → SAP
Status: SYNCED
ra cuối line
Forklift lấy vào kho
WMS gửi ZPL snapshot
đã lock → Máy in phụ
Operator scan PalletID
(cuối băng tải - WiFi)
⚠️ Nhánh Retry
VERIFYING → VERIFY_FAILED → retry_count++ → nếu ≤ 3: quay lại WAIT_PRINT → In lại lần 2, 3
🚨 Nhánh ERROR
retry_count > 3 → Status: ERROR → Dừng line → Còi/đèn Alarm → Operator xử lý → Admin reset
📦 Pallet Lẻ (MANUAL_REQUIRED)
Qty < QtyPerPallet → MANUAL_REQUIRED → KHÔNG in auto → Operator in tại máy in phụ kho
Luồng Chính (Happy Path)
SAP PO → WMS chia pallet → CREATED → WAIT_PRINT → PRINTING → VERIFYING → VERIFIED (LOCK) → FINAL_CHECKED → SYNCED
Luồng Retry & Manual
• Qty < QtyPerPallet → MANUAL_REQUIRED
• VERIFY_FAILED →
retry_count++ → nếu ≤ Max → WAIT_PRINT → In lại
Luồng Lỗi
retry_count > MaxRetry (3) → ERROR → Dừng line + Alarm → Operator can thiệp → Admin reset → WAIT_PRINT
Điểm Kiểm Soát Quan Trọng (Critical Points)
Unique ID
PalletID bắt buộc phải Unique (duy nhất) trên toàn bộ hệ thống.
Idempotent API
PLC có thể gọi API nhiều lần nhưng không tạo ra rác hay trùng lặp tác vụ.
Data Lock
Ngay khi chuyển sang trạng thái VERIFIED, dữ liệu bị khóa hoàn toàn.
Gatekeeper SAP
Tuyệt đối không cho đồng bộ SAP nếu pallet chưa đạt FINAL_CHECKED.
Secure Reprint
Không cho phép in lại nếu pallet chưa đạt trạng thái VERIFIED.
Timeline Chi Tiết Một Pallet (Ví Dụ)
Pallet ID: ABI-2600000101
PO: 4500123456 | SKU: TIGER-330ML-24 | Qty: 120 thùng
WMS nhận PO từ SAP, tạo pallet tự động
Chờ PLC gọi API lấy pallet tiếp theo
WMS gửi lệnh in → Printer tự động in tem
QR Scanner quét tem sau khi dán, gửi dữ liệu lên WMS
Dữ liệu khớp 100% → WMS lock toàn bộ trường in
Nhân viên scan bằng Handheld Scanner cuối line
Đồng bộ lên SAP thành công trong batch 23:00
Tổng thời gian
14h 49m 49s
Thời gian xử lý
2.3s
Retry count
0
Reprint count
0
So Sánh Các Trường Hợp Xử Lý
| Trường hợp | Điều kiện | Hành động hệ thống | Trạng thái kết quả | Cho phép Reprint | Đồng bộ SAP |
|---|---|---|---|---|---|
| Pallet tự động chuẩn | Verify thành công lần đầu | Lock data → Chờ Final Check | VERIFIED | (Chưa Final Check) | |
| Verify fail lần 1-2 | RetryCount ≤ MaxRetry | Chuyển về WAIT_PRINT, in lại | WAIT_PRINT | ||
| Verify fail > MaxRetry | RetryCount > MaxRetry (3) | Dừng line, cảnh báo, chờ manual | ERROR | ||
| Pallet lẻ (không đủ) | Qty < QtyPerPallet | Đánh dấu Manual Required | MANUAL_REQUIRED | ||
| Đã qua chốt cuối | Scan bằng Handheld Scanner | Sẵn sàng đồng bộ SAP | FINAL_CHECKED | (Chờ batch 23:00) | |
| Đã đồng bộ SAP | Batch sync thành công | Hoàn tất vòng đời | SYNCED | (Đã sync) |