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
ขั้นตอน
- เปิดแอป Manufacturing → Products → Bills of Materials → New
- เลือก Product = "Touring Bike 350" (จาก Lab 2)
- เพิ่ม Components: "Bicycle Frame — Aluminum" จำนวน 1, และเพิ่มสินค้าสมมติอื่น เช่น "Wheel Assembly" จำนวน 2 (สร้างสินค้าใหม่ถ้ายังไม่มี)
- บันทึก 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 ทำได้ละเอียดกว่า" ตามที่กล่าวถึงในบทที่ 5a2Work Center และ Operations (Routing)
ขั้นตอน
- เปิด Settings ของแอป Manufacturing เปิดใช้งานฟีเจอร์ Work Orders ก่อน (ค่าเริ่มต้นอาจปิดไว้)
- ไปที่ Manufacturing → Configuration → Work Centers → New สร้าง Work Center ชื่อ "Assembly Line 1"
- ตั้งค่า Capacity และ Costing (Cost per hour) — เทียบเท่า Available Capacity และการผูกกับ Cost Center ในบทที่ 5a
- กลับไปที่ 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 แยกขั้นตอนเหมือน SAP3สร้างและผลิต Manufacturing Order
ขั้นตอน
- เปิด Manufacturing → Operations → Manufacturing Orders → New
- เลือก Product = "Touring Bike 350" จำนวน 5 คัน — BOM และ Operations ที่สร้างไว้จะถูกดึงมาอัตโนมัติ (เทียบเท่าขั้น Authorize Production ที่ระบบดึง BOM/Routing เข้า Production Order โดยอัตโนมัติ)
- กด Confirm — สถานะเปลี่ยนจาก Draft เป็น Confirmed (เทียบเท่าสถานะ CRTD → REL ในทฤษฎี แต่ Odoo ไม่แยก partial release)
- ตรวจสอบ Component Availability (สีเขียว/แดง เหมือนใน Sales Order)
- กด 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
ขั้นตอน
- ไปที่ Inventory → Operations → Replenishment (หรือ Manufacturing → Operations → Replenishment)
- ดูรายการที่ระบบเสนอ — ถ้าสต็อกวัตถุดิบต่ำกว่า reordering rule ที่ตั้งไว้ ระบบจะเสนอสร้าง Purchase Order หรือ Manufacturing Order อัตโนมัติ
- ลองตั้งค่า 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