การพักสินค้าที่ส่วนต่าง ๆ ในระบบ WMS

A

Appsupport Th

Last updated on Jun 25, 2026

Hold ที่เกิดจากการแจ้งสินค้าสูญหาย (Lost) ระหว่างหยิบสแกน

เมื่อเจ้าหน้าที่หยิบสินค้าแล้วพบว่าสูญหายหรือไม่พบที่ Location ระบบรองรับการแจ้ง Lost ผ่าน Handheld ใน 4 Module ที่มีรูปแบบการทำงานเหมือนกัน

เมื่อแจ้ง Lost ทั้ง Location (Full Location Lost) และกด Move and Reallocate:

  1. ระบบย้ายสินค้าทั้งหมดใน Location ที่แจ้ง Lost ไปยัง Location Lost ที่ตั้งค่าไว้

  2. Inventory ที่ย้ายไปถูก Hold ทันที

  3. ระบบสร้างใบงาน MOVE + HOLD คู่กันให้อัตโนมัติ

  4. ระบบ Re-Allocate Inventory ตัวอื่นมาแทนให้อัตโนมัติ (ถ้ามีของเพียงพอ)

  5. ถ้า Re-Allocate ไม่ได้ (ของหมด) →

    • กด Close → แยก Batch รายการที่หาสต็อกไม่ได้ออก, สถานะ = PAR ALLOCATED, ไม่ให้สแกนต่อ

    • กด Next Picking → แยก Batch รายการที่หาสต็อกไม่ได้ออก, สถานะ = PAR ALLOCATED, สแกนส่วนที่มีต่อได้

    • ถ้ามี SKU เพียงตัวเดียวในใบงาน → สถานะ = OUT OF STOCK ทันที

1.1 Scan Pick Single

เส้นทางเมนู: Tab Operate → Scan Pick

แจ้ง Lost บางส่วน (Partial Lost)

  1. เข้าใบงาน Scan Pick ที่เตรียมไว้ (DSO Status = ALLOCATED)

  2. สแกนตาม Profile ที่กำหนด ตามจำนวนที่มี (เช่น 1 Qty)

  3. กดสไลด์การ์ดจากขวามาซ้าย

  4. เลือก Lost/Damage

ผลลัพธ์:

ระบบแสดง Pop-up "Item not found or damage" — มี Document Type สำหรับ Hold พร้อมให้เลือก Location ที่ตั้งค่าไว้สำหรับ Lost

แจ้ง Lost ทั้ง Location (Full Location Lost)

  1. เข้าใบงาน Scan Pick ที่เตรียมไว้

  2. กดสไลด์การ์ดจากขวามาซ้าย → เลือก Lost/Damage

  3. เลือก Location Lost ที่ตั้งค่าไว้

  4. กด Move and Reallocate

ผลลัพธ์:

ตาม Business Logic ร่วมด้านบน

📌 กรณีอยู่ใน Load Planning: หากใบงาน Scan Pick อยู่ภายใต้ Load Planning ที่ Status = WIP — แจ้ง Lost แล้ว Load Planning ยังคงสถานะ WIP ไม่เปลี่ยนแปลง


1.2 Scan Pick Wave

เส้นทางเมนู: Tab Operate → Scan Pick → เลือกงาน Wave

แจ้ง Lost บางส่วน (Partial Lost)

  1. เข้าเมนู Scan Pick → เลือกงาน Wave ที่ต้องการหยิบ

  2. สแกนตาม Scan Profile ตามจำนวนที่มี (เช่น 1 Qty)

  3. กดสไลด์การ์ดจากขวามาซ้าย → เลือก Lost/Damage

ผลลัพธ์:

ระบบแสดง Pop-up "Item not found or damage" — มี Document Type สำหรับ Hold

แจ้ง Lost ทั้งใบงาน DSO (เมื่อ DSO มีสินค้าเพียง 1 Location)

  1. เข้าเมนู Scan Pick → เลือกงาน Wave

  2. กดสไลด์การ์ดจากขวามาซ้าย → เลือก Lost/Damage

  3. เลือก Location Lost ที่ตั้งค่าไว้

  4. กด Move and Reallocate

ผลลัพธ์:

  • ตาม Business Logic ร่วม (ย้าย + Hold + สร้าง MOVE/HOLD)

  • DSO ที่เกี่ยวข้องถูกนำออกจาก Wave อัตโนมัติ

  • DSO ที่เกี่ยวข้องถูกนำออกจาก Load Planning อัตโนมัติ (ถ้าอยู่ใน Load Planning)

  • Load Planning ยังคงสถานะ WIP ถ้ายังมี DSO ใบอื่นอยู่ใน Truck เดียวกัน

📌 กรณีไม่อยู่ใน Load Planning: Business Logic การ Hold/Re-Allocate เหมือนกันทุกอย่าง เพียงไม่มีผลกระทบกับ Load Planning


Hold ที่เกิดขึ้นในกระบวนการรับคืนสินค้า

2.1 Return (GRR) — Immediate Hold when Receive

เมนู: Return

ใช้เมื่อต้องการพักสินค้าทันทีขณะยืนยันรับคืน (Confirm Return) โดยไม่ต้องสร้างเอกสาร Hold แยกทีหลัง

2.1.1 Hold สินค้าทั้งแถว (1 SKU)

  1. ไปที่เมนู Return → เข้าไปในใบงาน RETURN ที่เตรียมไว้ (Status = RETURNING, Return Type = Claim)

  2. กด Next

  3. ใส่ Return Reason ให้ครบ

  4. ติ๊ก Checkbox "Immediate hold when receive"

  5. กรอก Hold Reason

  6. กด Confirm Return

ผลลัพธ์:

  • ขึ้น Pop-up Create Shipment Order แสดงเลข DSO ที่สร้าง — กด OK เพื่อเด้งไปยังใบงาน DSO

  • ใบงาน GRR เปลี่ยน Status = RETURN

  • ข้อมูลถูกเพิ่มใน Inventory Enquiry เป็น Row สีเทา พร้อม Good Status = Good และ Hold

2.1.2 รับคืนแบบผสม (Damage & Hold คนละแถว)

ใช้เมื่อมี SKU มากกว่า 1 ตัวในใบงาน และต้องการ Hold บางแถว / Damage บางแถว

  1. ไปที่เมนู Return → เข้าใบงาน → กด Next

  2. ใส่ Return Reason ให้ครบ

  3. ติ๊ก Checkbox "Immediate hold when receive" เฉพาะแถวที่ต้องการ Hold

  4. กรอก Hold Reason ตามแถวที่ติ๊ก

  5. เปลี่ยน Received Condition ของแถวอื่นเป็น Damage ตามต้องการ

  6. กด Confirm Return

ผลลัพธ์:

  • ขึ้น Pop-up Create Shipment Order เหมือนเดิม

  • ใบงาน GRR เปลี่ยน Status = RETURN

  • Inventory Enquiry แสดง Good Status ตรงตามแถวที่ตั้งค่าไว้ — ช่อง Hold และ Damage ขึ้นแยกกันตามแถว

⚠️ ข้อจำกัดสำคัญ: ไม่สามารถ Hold และ Damage ในบรรทัดเดียวกันได้ — หากติ๊ก Immediate Hold พร้อมเปลี่ยน Received Condition เป็น Damage ในแถวเดียวกัน ระบบจะไม่อนุญาตให้ Save

2.2 Scan Return — SKU Suspend / Unhold

เส้นทางเมนู: Tab Operate → Scan Return

2.2.1 สแกนรับสินค้าและระบุ Hold

  1. เข้าใช้งาน Handheld → Tab Operate → เมนู Scan Return

  2. กรอก Return Key ของใบงานที่เตรียมไว้ → เลือก Return Reason → กด Confirm

  3. สแกนตาม Profile ที่กำหนดให้ครบทุกตัว

  4. สไลด์ SKU ที่สแกนไป จากซ้ายมาขวา

  5. กด SKU Suspend

  6. เลือก Reason

  7. กด OK

  8. กด Close JobConfirm Close Job

  9. กด Confirm Return → เซ็นลายเซ็น → Confirm Return

ผลลัพธ์:

  • รับสำเร็จ ขึ้น "Record Success"

  • ใบงานเปลี่ยน Status เป็น RETURN (ตรงกันทั้ง HH และเว็บ)

  • ข้อมูลเพิ่มใน Inventory Enquiry เป็น Row สีเทา

  • จัดเก็บเป็น Goods Status = Hold พร้อม Hold Reason ตามที่ระบุ

📌 การแยกรับสินค้าดีและสินค้า Hold ในใบงานเดียวกัน: ทำได้ในกรณีที่ใบงานมี SKU มากกว่า 1 ตัว — สไลด์เฉพาะ SKU ที่ต้องการ Hold เท่านั้น SKU อื่นจะยังคงเป็น Goods Status = Good ตามปกติ

2.2.2 แก้ไขสถานะจาก Hold เป็น Unhold บน Handheld

ใช้เมื่อสไลด์ Hold ไปแล้ว แต่ต้องการยกเลิกก่อน Close Job

  1. หลังกด SKU Suspend และเลือก Reason ไปแล้ว

  2. สไลด์ SKU เดิมอีกครั้ง จากซ้ายมาขวา

  3. กด SKU Suspend อีกครั้ง

  4. กด OK (โดยไม่เลือก Reason ใหม่)

ผลลัพธ์:

สินค้าแถวนั้นจัดเก็บเป็น Goods Status = Good ตามปกติ (ไม่ใช่ Hold)

2.2.3 รับเข้าด้วย Profile Scan ที่มี Location (ปิดงานทันที)

ใช้เมื่อต้องการรับคืนพร้อมระบุ Location ในขั้นตอนเดียว (ใบงาน GRR Status = RETURN, Profile = Location > SKU > QTY)

  1. เข้าเมนู Scan Return → กรอก Return Key → เลือก Return Reason → กด Confirm

  2. สแกนตาม Profile ที่กำหนดให้ครบทุกตัว

  3. กด Close JobConfirm Close Job

  4. กด Confirm Return → เซ็นลายเซ็น → Confirm Return

ผลลัพธ์:

  • ใบงาน GRR เปลี่ยน Status = CLOSED ทันที

  • ข้อมูลถูกเพิ่มใน Inventory Enquiry พร้อม Hold Reason ตรงกับที่กรอกไป (ถ้ามีการ Hold ระหว่างสแกน)


Hold ที่เกี่ยวข้องกับ Module อื่น

3.1 จองสินค้าที่ Hold/Damage - Allocation by Single Order

ปกติสินค้าที่ติด Hold จะ Allocate ไม่ได้ แต่สำหรับงานที่ใช้ Pick Strategy ที่อนุญาตให้หยิบสินค้า Hold หรือ Damage ได้ ระบบจะอนุญาตให้ Allocate ได้ตามปกติ

จองสินค้าที่มี Status Damage

  1. ไปที่เมนู Inventory Operate / Transfer

  2. กด + หน้าใบงาน Transfer

  3. เข้าไปในใบงานที่เตรียมไว้ (Status = OPENED, Pick Strategy รองรับการหยิบ Damage)

  4. ไปที่ Tab Allocation

  5. กด Confirm

ผลลัพธ์: Allocate สำเร็จ — Status ใบงาน = ALLOCATED, ข้อมูล Update กลับไปที่ Inventory ถูกต้อง

จองสินค้าที่มี Status Hold

ขั้นตอนเดียวกัน แต่ Pick Strategy ต้องรองรับการหยิบ Hold — ผลลัพธ์เหมือนกัน (Allocate สำเร็จ, Status = ALLOCATED)

จองสินค้าที่มีทั้ง Damage และ Hold (คนละ SKU)

ขั้นตอนเดียวกัน โดย Pick Strategy ต้องรองรับการหยิบทั้ง Hold และ Damage แยกคนละตัวกัน — ผลลัพธ์ Allocate สำเร็จเหมือนกัน

จองสินค้าที่มีทั้ง Damage, Hold และ Good ปนกัน

ขั้นตอนเดียวกัน โดย Pick Strategy ต้องรองรับการหยิบทั้ง 3 สถานะแยกคนละตัวกัน — ผลลัพธ์ Allocate สำเร็จครบทุกสถานะ

📌 สรุป: เงื่อนไขเดียวที่ทำให้ Allocate สินค้า Hold/Damage ได้คือ Pick Strategy ของใบงานนั้นต้องตั้งค่าให้หยิบสถานะนั้นได้ มิฉะนั้นจะ Allocate ไม่ได้ตาม Default

3.2 นับสต็อกที่ติด Hold - Cycle Count / Scan Cycle Count

ใบงานนับสต็อก (Cycle Count) รองรับการนับและปรับยอด Hold (After) เป็นส่วนหนึ่งของผลการนับ ทั้งผ่านหน้าเว็บและ Handheld

นับสต็อกที่ติด Hold ผ่านหน้าเว็บ (Cycle Count)

  1. ไปที่เมนู Cycle Count → เข้าไปในใบงานที่เตรียมไว้ (Status = WIP)

  2. กด 3 จุด ขวาบน → Hover ที่ "Go to round" → เลือก Round ที่ต้องการ

  3. ดับเบิลคลิก และแก้ไข Available (After), Damaged (After), Hold (After) ให้ครบทุกตัว

  4. กด 3 จุด ขวาบน → กด "Counted Successfully"

ผลลัพธ์:

  • สถานะเอกสารเปลี่ยนเป็น COMPLETED

  • สามารถดำเนินการนับสต็อกและยืนยันรอบจนจบกระบวนการได้สำเร็จ

  • สามารถทำต่อรอบที่ 2 และ 3 ได้ด้วยขั้นตอนเดียวกัน (เลือก Round 2 / Round 3 ตามลำดับ)

นับสต็อกที่ติด Hold ผ่าน Handheld (Scan Cycle Count)

  1. เข้าใช้งาน Handheld → Tab Operate → เมนู Scan Cycle Count

  2. สแกนบาร์โค้ดใบงานจากรายงานเพื่อเข้าสู่ใบงาน (ใบงานมี Inventory ที่เป็น Hold)

  3. สแกนยืนยัน Location ที่ต้องการนับ

  4. สแกนยืนยัน SKU ที่พบในตำแหน่งนั้น

  5. ระบุ Quantity ที่นับได้จริง

  6. กด Confirm Round → เซ็นลายเซ็น → Confirm Cycle Count

  7. เซ็นลายเซ็น AuditConfirm Cycle Count

  8. เซ็นลายเซ็น Verify CustomerConfirm Cycle Count

ผลลัพธ์:

  • ระบบบันทึกจำนวนสินค้าที่นับได้จริงเข้าสู่รอบการนับปัจจุบัน

  • Status ของ SKU ถูกต้อง (รวม Hold)

  • หน้าจอ Handheld รีเซ็ตพร้อมสแกน Location/SKU ถัดไป

  • สถานะเอกสารบนเว็บเปลี่ยนเป็น COMPLETED


สรุปผลลัพธ์ตาม Doc Type

Doc Type ผลกับ Inventory Enquiry
Hold สถานะสินค้า → Hold, แสดง Hold ID, Hold Qty, Hold Reason
Unhold สถานะสินค้า → Available, Hold ID/Qty/Reason หายไป
Change Hold Reason เปลี่ยนเป็นค่าใหม่ — Hold Qty ไม่เปลี่ยนแปลง

วงจรสถานะเอกสาร Hold

สถานะ เกิดขึ้นเมื่อ
OPENED สร้างเสร็จ (Save หรือ Import) — รอ Process
COMPLETED กด Process สำเร็จ
CANCELED ยกเลิกผ่านเว็บสำเร็จ (เฉพาะ OPENED, ผ่านเว็บเท่านั้น)

เปรียบเทียบ 4 ช่องทางการเกิด Hold

ช่องทาง ใครเป็นคนสั่ง สร้างเอกสารแยกไหม
Manual (Inventory Operate > Hold) User ✅ สร้างเอกสาร Hold โดยตรง
Import User (ผ่านไฟล์) ✅ สร้างเอกสาร Hold โดยตรง
Auto Hold (กฎอัตโนมัติ) System (ตามกฎที่ตั้งไว้) ✅ สร้างเอกสาร Hold ให้อัตโนมัติ
Lost ระหว่างหยิบ-สแกน System (จากการแจ้ง Lost) ✅ สร้างใบงาน MOVE + HOLD คู่กันอัตโนมัติ
Immediate Hold ตอนรับคืน User (ติ๊ก Checkbox ตอน Confirm Return) ❌ ฝังอยู่ในกระบวนการ Return ไม่มีเอกสาร Hold แยก