Lab 5 · ทฤษฎีที่เกี่ยวข้อง: บทที่ 5a/5b

Manufacturing App: BOM, Work Center และ Manufacturing Order

สร้างจักรยานจากชิ้นส่วน — Lab นี้สร้าง BOM หนึ่งชุด ตั้ง Work Center ผลิตจริงหนึ่งรอบ และรัน MRP Scheduler เพื่อดูว่า Odoo แปลง demand เป็น replenishment plan อัตโนมัติอย่างไร

🎯
เป้าหมาย: สร้าง BOM สำหรับ Finished Good, สร้างและผลิต Manufacturing Order สำเร็จหนึ่งใบ พร้อมรัน MRP Scheduler

1สร้าง Bill of Materials

ขั้นตอน
  1. เปิดแอป Manufacturing → Products → Bills of Materials → New
  2. เลือก Product = "Touring Bike 350" (จาก Lab 2)
  3. เพิ่ม Components: "Bicycle Frame — Aluminum" จำนวน 1, และเพิ่มสินค้าสมมติอื่น เช่น "Wheel Assembly" จำนวน 2 (สร้างสินค้าใหม่ถ้ายังไม่มี)
  4. บันทึก BOM
จุดที่ Odoo ต่างจากทฤษฎีชัดเจนที่สุดในบทนี้
บทที่ 5a อธิบาย BOM สี่ชนิด (EBOM, MBOM, Service BOM, Sales BOM) ที่แยกกันตามมุมมองการใช้งาน — Odoo มี BOM ประเภทเดียว ("Manufacture this Product") ที่ผูกกับ product โดยตรง ไม่มีการแยก EBOM (มุมมองออกแบบ) ออกจาก MBOM (มุมมองการผลิต) อย่างเป็นทางการ — ถ้าต้องการ "BOM สำหรับขาย" (Sales BOM) ต้องใช้ฟีเจอร์ "Kit" แทน (BOM ที่ตั้งค่าพิเศษให้แยกส่วนประกอบตอนขายแทนที่จะขายเป็นชิ้นเดียว) ผู้เรียนควรมองว่า Odoo เลือก "ความเรียบง่ายเชิงโครงสร้าง" แลกกับ "การแยกมุมมองที่ SAP ทำได้ละเอียดกว่า" ตามที่กล่าวถึงในบทที่ 5a

2Work Center และ Operations (Routing)

ขั้นตอน
  1. เปิด Settings ของแอป Manufacturing เปิดใช้งานฟีเจอร์ Work Orders ก่อน (ค่าเริ่มต้นอาจปิดไว้)
  2. ไปที่ Manufacturing → Configuration → Work Centers → New สร้าง Work Center ชื่อ "Assembly Line 1"
  3. ตั้งค่า Capacity และ Costing (Cost per hour) — เทียบเท่า Available Capacity และการผูกกับ Cost Center ในบทที่ 5a
  4. กลับไปที่ BOM เดิม เปิดแท็บ Operations (จะปรากฏหลังเปิดใช้ Work Orders) เพิ่ม operation "Assemble Frame + Wheels" ที่ Work Center "Assembly Line 1" ระบุ Duration
เทียบกับทฤษฎีบทที่ 5a
สังเกตว่า Odoo ฝัง Routing ไว้เป็นแท็บ "Operations" ภายใน BOM โดยตรง ไม่ใช่ object แยกต่างหากแบบ Product Routing ของ SAP — การผูก BOM กับ Routing (Component Assignment ในทฤษฎี) จึงเกิดขึ้นโดยอัตโนมัติในตัว ไม่ต้องทำ mapping แยกขั้นตอนเหมือน SAP

3สร้างและผลิต Manufacturing Order

ขั้นตอน
  1. เปิด Manufacturing → Operations → Manufacturing Orders → New
  2. เลือก Product = "Touring Bike 350" จำนวน 5 คัน — BOM และ Operations ที่สร้างไว้จะถูกดึงมาอัตโนมัติ (เทียบเท่าขั้น Authorize Production ที่ระบบดึง BOM/Routing เข้า Production Order โดยอัตโนมัติ)
  3. กด Confirm — สถานะเปลี่ยนจาก Draft เป็น Confirmed (เทียบเท่าสถานะ CRTD → REL ในทฤษฎี แต่ Odoo ไม่แยก partial release)
  4. ตรวจสอบ Component Availability (สีเขียว/แดง เหมือนใน Sales Order)
  5. กด Check Availability แล้ว Mark as Done (หรือใช้ "Produce" ถ้าเปิด Work Orders — จะให้กรอกจำนวนที่ผลิตได้จริงต่อ operation)
Mark as Done = สี่ขั้นตอนของทฤษฎีรวมกัน
ปุ่มเดียวนี้ทำหน้าที่ของ Goods Issue + Production (shop floor) + Confirmation + Goods Receipt พร้อมกันทั้งหมด — Odoo ใช้ Backflushing เป็นค่าเริ่มต้นเสมอ (ตรงกับที่อธิบายในบทที่ 5b ว่าหลายบริษัทใช้เทคนิคนี้จริง) คือคำนวณย้อนกลับว่าต้องเบิกวัตถุดิบเท่าไรจากจำนวนที่ผลิตเสร็จ โดยไม่ต้องบันทึกการเบิกแยกทีละขั้น — ถ้าต้องการเห็นขั้นตอนแยกแบบ SAP (release → goods issue → confirm → goods receipt เป็นสี่ขั้นตอนต่างกัน) ต้องเปิดใช้ Work Orders และตั้งค่า Consumption เป็น "Strict" เพื่อบังคับให้ยืนยันปริมาณวัสดุจริงทีละ operation
ตรวจผลลัพธ์
หลัง Mark as Done ไปดู Inventory → Products → "Bicycle Frame — Aluminum" จะเห็นสต็อกลดลง 5 หน่วย และ "Touring Bike 350" เพิ่มขึ้น 5 หน่วย — ตรงกับที่ทฤษฎีบทที่ 5b อธิบายเรื่องผลของ Goods Issue (ลดวัตถุดิบ) และ Goods Receipt (เพิ่มสินค้าสำเร็จรูป) รวมกันในทีเดียว

4MRP Scheduler ≈ Material Requirements Planning

ขั้นตอน
  1. ไปที่ Inventory → Operations → Replenishment (หรือ Manufacturing → Operations → Replenishment)
  2. ดูรายการที่ระบบเสนอ — ถ้าสต็อกวัตถุดิบต่ำกว่า reordering rule ที่ตั้งไว้ ระบบจะเสนอสร้าง Purchase Order หรือ Manufacturing Order อัตโนมัติ
  3. ลองตั้งค่า Reordering Rule บนสินค้า "Bicycle Frame — Aluminum" (Min 10, Max 50) แล้วสั่งใช้วัตถุดิบจนต่ำกว่า 10 — รันปุ่ม "Run Scheduler"
เทียบกับ BOM Explosion (ทฤษฎีบทที่ 5b)
ลองสร้าง Manufacturing Order สำหรับ "Touring Bike 350" จำนวนมาก (เช่น 50 คัน) โดยไม่มีสต็อกวัตถุดิบเพียงพอ แล้วรัน Replenishment — สังเกตว่า Odoo คำนวณความต้องการ "Bicycle Frame" และ "Wheel Assembly" ที่ต้องใช้ตาม BOM โดยอัตโนมัติ (คูณตามจำนวนที่ต้องผลิต) นี่คือ BOM Explosion แบบง่ายในทางปฏิบัติ — แม้ Odoo จะไม่แสดง "กราฟ" ความสัมพันธ์ให้เห็นชัดเจนเหมือนที่อธิบายในทฤษฎี (คำเตือนเรื่อง cycle/double-counting) แต่กลไกภายในทำงานแบบเดียวกัน: ไล่คำนวณจากบนลงล่างตามโครงสร้าง BOM แบบเวียนซ้ำ

5สรุปการเทียบคำศัพท์

ขั้นตอนทฤษฎี (บทที่ 5a/5b)ปุ่ม/เอกสารใน Odoo
Bill of Materials (แยก EBOM/MBOM/Service/Sales)Bill of Materials ประเภทเดียว + Kit (สำหรับ Sales BOM)
Product Routingแท็บ "Operations" ภายใน BOM
Request Production (Planned Order)Manufacturing Order สถานะ Draft
Authorize Production (Production Order)ปุ่ม Confirm
Goods Issue + Confirmation + Goods Receiptปุ่ม Mark as Done (รวมกันเป็นขั้นตอนเดียว ด้วย Backflushing)
Material Requirements Planning (MRP)Replenishment + Run Scheduler
เช็คลิสต์ก่อนไป Lab 6
  • สร้าง BOM สำหรับ Finished Good สำเร็จ พร้อม Components อย่างน้อย 2 รายการ
  • สร้าง Work Center และผูกกับ Operation ใน BOM
  • สร้างและ Mark as Done Manufacturing Order สำเร็จหนึ่งใบ พร้อมตรวจสต็อกที่เปลี่ยนแปลง
  • ตั้งค่า Reordering Rule และทดลองรัน Replenishment Scheduler
  • อธิบายได้ว่าทำไม Odoo ไม่แยก BOM เป็นหลายชนิดเหมือน SAP