- 21
- February
ในตอนที่ 1 เราเล่าภาพรวมของการอัพเกรดครั้งใหญ่ไปแล้ว ตั้งแต่เหตุผลที่ต้องอัพเกรด สิ่งที่เปลี่ยนแปลง ไปจนถึง Timeline 14 ปีของการใช้งาน Saeree ERP ของ อบก. (TGO) — ในตอนนี้เราจะ เจาะลึกเบื้องหลังทางเทคนิคล้วนๆ ว่าทำไมถึงเลือก Angular 20, PrimeNG 20 และ Bootstrap 5 และTechnologyเหล่านี้ทำงานร่วมกันอย่างไรในระบบ ERP ระดับองค์กร
ทำไมเลือก Angular 20 — Framework สำหรับระบบ Enterprise
การเลือก Frontend Framework สำหรับระบบ ERP ไม่เหมือนกับการเลือก Framework สำหรับเว็บไซต์ทั่วไป ระบบ ERP ต้องการ Framework ที่รองรับโปรเจกต์ขนาดใหญ่ มีโครงสร้างที่ชัดเจน สามารถบำรุงรักษาได้ในระยะยาว และมี Ecosystem ที่แข็งแกร่ง — Angular 20 ตอบโจทย์ทุกข้อ
จุดเด่นของ Angular 20 ที่ทำให้เหมาะกับระบบ ERP:
- Standalone Components — ไม่ต้องใช้ NgModule อีกต่อไป ทำให้โครงสร้างโค้ดเรียบง่าย แต่ละ Component เป็นอิสระ สามารถโหลดแบบ Lazy Loading ได้ทันที ลดขนาด Bundle และเพิ่มความเร็วในการโหลดหน้าจอ
- Signal-based Reactivity — ระบบ Reactivity แบบใหม่ที่แทนที่ Zone.js เดิม ทำให้การอัพเดท UI แม่นยำและมีประสิทธิภาพมากขึ้น โดยเฉพาะในหน้าจอที่มีข้อมูลจำนวนมาก เช่น ตารางรายงานที่มีหลายพันแถว
- SSR/SSG built-in — รองรับ Server-Side Rendering และ Static Site Generation โดยไม่ต้องติดตั้งเพิ่มเติม เพิ่มความเร็วในการโหลดHome
- TypeScript strict mode — การใช้ TypeScript ในโหมด strict ช่วยป้องกันบั๊กจากการพิมพ์ผิดหรือใช้ตัวแปรผิดประเภท ซึ่งสำคัญมากสำหรับระบบ ERP ที่มีโค้ดจำนวนมาก
เมื่อเปรียบเทียบกับ ระบบเวอร์ชันเดิม (ZK Framework) ที่เป็นTechnologyเดิม จะเห็นความแตกต่างอย่างชัดเจน:
| เกณฑ์เปรียบเทียบ | ระบบเวอร์ชันเดิม (ZK Framework) | Angular 20 |
|---|---|---|
| UI/UX | UI แบบ Desktop Application บน Web รูปลักษณ์ล้าสมัย ปรับแต่ง UI ได้ยาก | UI ทันสมัย ปรับแต่งได้ทุกส่วน รองรับ Dark/Light Mode |
| Performance | ประมวลผลฝั่ง Server เป็นหลัก โหลดช้าเมื่อข้อมูลมาก | SPA (Single Page Application) โหลดเร็ว รองรับ Lazy Loading และ Virtual Scrolling |
| Responsive | ไม่รองรับ Mobile แสดงผลได้ดีเฉพาะ Desktop | Responsive เต็มรูปแบบ ใช้งานได้ทั้ง Desktop, Tablet และ Mobile |
| Ecosystem | ชุมชนผู้พัฒนาเล็ก Component Library จำกัด | ชุมชนขนาดใหญ่ Component Library มากมาย (PrimeNG, Angular Material ฯลฯ) |
| Maintainability | หานักพัฒนาที่เชี่ยวชาญได้ยาก Technologyเฉพาะทาง | หานักพัฒนาได้ง่าย มีเอกสารและ Community ขนาดใหญ่ |
PrimeNG 20 — UI Component Library ระดับ Enterprise
หลังจากเลือก Angular 20 เป็น Framework แล้ว คำถามถัดมาคือจะใช้ UI Component Library ตัวไหน ระหว่าง Angular Material กับ PrimeNG — คำตอบคือ PrimeNG 20
เหตุผลที่เลือก PrimeNG แทน Angular Material:
- Component ครบถ้วนสำหรับ Enterprise — PrimeNG มี Component มากกว่า 80 ตัว ครอบคลุมทุกความต้องการของระบบ ERP ในขณะที่ Angular Material เน้นไปที่ Material Design ซึ่งเหมาะกับแอปพลิเคชันทั่วไปมากกว่า
- DataTable ระดับ Enterprise — รองรับ Sorting, Filtering, Lazy Loading, Virtual Scrolling, Row Grouping, Column Reordering, Export to Excel/PDF — ฟีเจอร์เหล่านี้จำเป็นสำหรับรายงาน ERP ที่มีข้อมูลหลายหมื่นแถว
- Theme System ที่ยืดหยุ่น — รองรับการปรับแต่ง Theme ได้อย่างอิสระ รวมถึง Dark/Light Mode ที่สลับได้ทันที
- TreeTable — แสดงข้อมูลแบบลำดับชั้น ซึ่งจำเป็นสำหรับผังAccounting (Chart of Accounts) และโครงสร้างองค์กร
Component ที่ใช้บ่อยในแต่ละโมดูลของ Saeree ERP:
| โมดูล | PrimeNG Component ที่ใช้ | ตัวอย่างการใช้งาน |
|---|---|---|
| e-Report | DataTable + Chart | รายงานการเงิน Accounting Inventory พร้อมกราฟแสดงผล Export ได้ทั้ง Excel และ PDF |
| KPI Dashboard | Chart + Card | แสดงผลตัวชี้วัดแบบ Real-time ด้วย Bar Chart, Pie Chart และ Card สรุปข้อมูล |
| ขออนุมัติใช้เงิน | Stepper + Dialog | แสดงขั้นตอนการอนุมัติแบบ Step-by-Step พร้อม Dialog ยืนยันการอนุมัติ |
| ผังAccounting | TreeTable + Dropdown | แสดงผังAccountingแบบลำดับชั้น สามารถขยาย/ยุบ Node ได้ |
| ปฏิทินงบประมาณ | Calendar + DataTable | แสดงรอบงบประมาณในรูปแบบปฏิทิน พร้อมรายละเอียดในตาราง |
Bootstrap 5 + PrimeNG — ทำงานร่วมกันอย่างไร
หลายคนอาจสงสัยว่า ทำไมต้องใช้ทั้ง Bootstrap 5 และ PrimeNG ในโปรเจกต์เดียวกัน — คำตอบคือ ทั้งสองมีหน้าที่ต่างกันอย่างชัดเจน และไม่ขัดแย้งกัน
- Bootstrap 5 ทำหน้าที่ Layout — Grid System (12 คอลัมน์), Spacing (margin, padding), Typography, Responsive Breakpoints — ทุกอย่างที่เกี่ยวกับการจัดวางหน้าจอ
- PrimeNG ทำหน้าที่ Component — Table, Form, Dialog, Chart, Calendar, Stepper — ทุกอย่างที่เป็น Interactive Component
การแยกหน้าที่ชัดเจนแบบนี้ทำให้:
- ไม่มี CSS Conflict — Bootstrap ดูแลเรื่อง Layout, PrimeNG ดูแลเรื่อง Component ไม่ทับซ้อนกัน
- นักพัฒนาคุ้นเคย — Bootstrap เป็น CSS Framework ที่นักพัฒนาส่วนใหญ่รู้จักอยู่แล้ว ไม่ต้องเรียนรู้ระบบ Grid ใหม่
- บำรุงรักษาง่าย — เมื่ออัพเกรด Bootstrap หรือ PrimeNG เวอร์ชันใหม่ สามารถอัพเกรดแยกกันได้โดยไม่กระทบอีกฝั่ง
Dark Mode / Light Mode — มากกว่าแค่สวยงาม
ระบบ Saeree ERP เวอร์ชันใหม่รองรับทั้ง Dark Mode และ Light Mode ซึ่งผู้ใช้สามารถเลือกโหมดที่ต้องการได้เอง
วิธีการ Implement:
- CSS Variables — สี, ขนาดตัวอักษร, ระยะห่าง ทุกอย่างถูกกำหนดเป็น CSS Variables ที่สามารถเปลี่ยนค่าได้ทันทีตาม Theme
- PrimeNG Theme System — PrimeNG 20 มี Theme API ที่รองรับการสลับ Theme แบบ Runtime ไม่ต้องโหลดหน้าใหม่
- prefers-color-scheme — ระบบจะตรวจจับค่า Media Query เพื่อใช้ค่าเริ่มต้นตามที่ผู้ใช้ตั้งไว้ในระบบปฏิบัติการ
- User Preference ใน localStorage — เมื่อผู้ใช้เลือก Theme แล้ว ระบบจะบันทึกค่าไว้ใน localStorage เพื่อให้คงค่าเดิมเมื่อเปิดใช้งานครั้งถัดไป
ข้อดีของ Dark Mode ในระบบ ERP:
- ลดความเมื่อยล้าสายตา — เจ้าหน้าที่ที่ใช้งานระบบ ERP ตลอดทั้งวัน การมี Dark Mode ช่วยลดแสงสว่างที่เข้าตา ลดอาการปวดตาและปวดศีรษะ
- ประหยัดแบตเตอรี่ OLED — สำหรับอุปกรณ์ที่ใช้จอ OLED (Tablet, Laptop บางรุ่น) Dark Mode ช่วยประหยัดพลังงานได้ 30-60%
- รองรับ Accessibility — ผู้ใช้ที่มีปัญหาเรื่องสายตาหรือแพ้แสงสามารถเลือก Dark Mode เพื่อความสะดวกในการใช้งาน
Multi-Language (ภาษาไทย + ภาษาอังกฤษ)
ระบบ Saeree ERP เวอร์ชันใหม่ของ อบก. รองรับ 2 ภาษา: ภาษาไทยและภาษาอังกฤษ โดยสามารถสลับภาษาได้ทันทีโดยไม่ต้องโหลดหน้าใหม่
Technologyที่ใช้:
- @ngx-translate/core — Library สำหรับ Internationalization (i18n) ใน Angular ที่ได้รับความนิยมสูงสุด
- JSON Translation Files — แต่ละภาษามีไฟล์ JSON แยกกัน เก็บคำแปลทุกข้อความในระบบ
- Dynamic Language Switching — ผู้ใช้สามารถกดปุ่มสลับภาษาได้ทันที ทุก Label, ข้อความ, หัวตาราง จะเปลี่ยนภาษาพร้อมกัน
ตัวอย่างการใช้งานจริง
เมื่อเจ้าหน้าที่การเงินเปิดรายงาน "งบทดลอง" ในโหมดภาษาไทย Label จะแสดงเป็น "เดบิต", "เครดิต", "ยอดคงเหลือ" — เมื่อกดสลับเป็นภาษาอังกฤษ Label จะเปลี่ยนเป็น "Debit", "Credit", "Balance" ทันที โดยข้อมูลตัวเลขยังคงเหมือนเดิม
ทำไม Multi-Language ถึงสำคัญสำหรับ อบก.?
อบก. ทำงานร่วมกับหน่วยงานต่างประเทศอย่างต่อเนื่อง ทั้ง UNFCCC (United Nations Framework Convention on Climate Change), ตลาด Carbon Market ระดับสากล และองค์กรด้านสิ่งแวดล้อมระหว่างประเทศ การมีระบบที่รองรับภาษาอังกฤษทำให้:
- ส่งออกรายงานเป็นภาษาอังกฤษสำหรับการประชุมระดับนานาชาติได้ทันที
- ผู้เชี่ยวชาญต่างชาติที่มาร่วมงานสามารถเข้าถึงข้อมูลในระบบได้โดยไม่ต้องแปล
- รองรับมาตรฐานการรายงานระดับสากลที่กำหนดให้ข้อมูลต้องเป็นภาษาอังกฤษ
สถาปัตยกรรมโดยรวม (Architecture)
ภาพรวมสถาปัตยกรรมของระบบ Saeree ERP หลังอัพเกรด:
| Layer | Technology | รายละเอียด |
|---|---|---|
| Frontend | Angular 20 + PrimeNG 20 + Bootstrap 5 | SPA (Single Page Application) ทำงานบน Browser รองรับทั้ง Desktop และ Mobile |
| Backend | REST API (Saeree ERP Backend) | Backend เดิมของ Saeree ERP ที่ให้Servicesผ่าน REST API |
| Database | PostgreSQL | ฐานข้อมูลเดิมจาก Saeree ERP เวอร์ชันเดิมที่เก็บข้อมูลมากว่า 14 ปี ไม่ต้อง Migrate |
| Authentication | SSO + 2FA | Single Sign-On ร่วมกับระบบอื่นในองค์กร พร้อม Two-Factor Authentication เพิ่มความปลอดภัย |
| Security | SSL A+ / HTTPS | ผ่านการทดสอบ SSL Test ระดับ A+ เข้ารหัสข้อมูลทุกการเชื่อมต่อ |
หัวใจของสถาปัตยกรรม
สิ่งที่สำคัญที่สุดของสถาปัตยกรรมนี้คือ การแยก Frontend ออกจาก Backend อย่างชัดเจน — Frontend (Angular 20) สื่อสารกับ Backend ผ่าน REST API เท่านั้น ทำให้สามารถอัพเกรด Frontend ได้โดยไม่กระทบ Backend และฐานข้อมูล นี่คือเหตุผลที่ข้อมูล 14 ปียังคงอยู่ครบถ้วนแม้หลังอัพเกรด
ทั้งหมดนี้ทำงานบน Browser ได้ทั้ง Desktop และ Mobile (Responsive) — เจ้าหน้าที่สามารถตรวจสอบรายงาน อนุมัติเอกสาร หรือดู KPI Dashboard ผ่านมือถือได้ทุกที่ทุกเวลา
สรุป
การอัพเกรดครั้งใหญ่ของ อบก. (TGO) ไม่ใช่แค่การเปลี่ยนหน้าตาระบบ แต่เป็นการ ยกระดับTechnologyทั้ง Stack จากระบบเวอร์ชันเดิมสู่ Angular 20 + PrimeNG 20 + Bootstrap 5 พร้อม Dark Mode, Multi-Language และสถาปัตยกรรมที่แยก Frontend/Backend อย่างชัดเจน
สิ่งที่ได้จากการอัพเกรดครั้งนี้ในมุมเทคนิค:
- UI/UX ทันสมัย — จากหน้าจอแบบ Desktop Application สู่ Web Application ที่ Responsive
- Performance ดีขึ้น — Signal-based Reactivity, Lazy Loading, Virtual Scrolling
- Maintainability สูง — TypeScript strict mode, Standalone Components, หานักพัฒนาได้ง่าย
- รองรับอนาคต — Angular มี Release Cycle ที่ชัดเจน พร้อม Long-Term Support
ในตอนถัดไป (ตอนที่ 3) เราจะเจาะลึกเรื่อง Workflow อนุมัติเอกสาร — ระบบอนุมัติแบบ Step-by-Step ที่ออกแบบมาเฉพาะสำหรับ อบก. พร้อมเชื่อมต่อกับระบบ e-Office
"Technologyเปลี่ยนทุก 3-5 ปี แต่ข้อมูลขององค์กรต้องอยู่ตลอดไป — หัวใจของการอัพเกรดคือทำให้ Frontend ทันสมัยโดยข้อมูลเดิมทุกรายการยังคงอยู่ครบถ้วน"
- Saeree ERP Team
สนใจให้คำปรึกษาเรื่องTechnology Frontend สำหรับระบบ ERP ขององค์กรคุณ? สามารถนัดหมาย Demo หรือติดต่อทีมที่ปรึกษาเพื่อประเมินความพร้อมขององค์กร
