02-347-7730  |  Saeree ERP - ระบบ ERP ครบวงจรสำหรับธุรกิจไทย ติดต่อเรา

เส้นทางเทคโนโลยี

จาก Java Swing สู่ Angular

25 ปีแห่งการพัฒนา ERP สำหรับหน่วยงานภาครัฐไทย

Saeree ERP มีรากฐานย้อนไปถึงปี พ.ศ. 2542 (1999) เมื่อ สุรีระยา ลิ้มไพบูลย์ ผู้ก่อตั้ง Grand Linux Solution เข้าร่วมโปรเจกต์ Compiere ของ Jorg Janke และมีส่วนร่วมใน Thai Localization ทำให้ภาษาไทยเป็นภาษาที่ 5 ที่ Compiere รองรับ (หลังจากอังกฤษ เยอรมัน ฝรั่งเศส และสเปน)

ในปี พ.ศ. 2562 เราเขียน Frontend ใหม่ทั้งหมดจาก Java Swing เป็น Angular 7 โดยตรง ข้ามเทคโนโลยีอื่นทั้งหมด (JSP, jQuery, GWT) ปัจจุบัน Saeree ERP ทำงานบน Angular 20+ กับ PrimeNG ให้บริการหน่วยงานภาครัฐไทย 10+ แห่ง ด้วย 16+ โมดูล, 1,000+ ตาราง และไม่มีโค้ด Swing เหลืออยู่เลย

Saeree ERP Angular Technology

25ปีประสบการณ์

ทำไม ERP ภาครัฐถึงแตกต่าง

ความท้าทายเฉพาะทางของระบบ ERP สำหรับหน่วยงานภาครัฐ

ก่อนจะพูดถึงการ Migration สิ่งสำคัญคือต้องเข้าใจว่าระบบ ERP ภาครัฐมีความท้าทายเฉพาะที่แตกต่างจาก ERP เอกชนอย่างไร

ความท้าทาย ERP เอกชน ERP ภาครัฐ (ไทย)
วงจรงบประมาณ ขึ้นกับรายได้ ยืดหยุ่น จัดสรรงบประมาณรายปี (พ.ร.บ. งบประมาณ)
การจัดซื้อจัดจ้าง PO Workflow มาตรฐาน ต้องเป็นไปตาม พ.ร.บ. จัดซื้อจัดจ้างฯ 2560
License คิดตามจำนวนผู้ใช้ ต้องรองรับผู้ใช้ไม่จำกัด (50-500+ คน)
มาตรฐานบัญชี IFRS/GAAP มาตรฐานบัญชีภาครัฐไทย + รับรองสรรพากร
การติดตั้ง Cloud-first มักเป็น On-premise (PDPA / Data Sovereignty)
อายุการใช้งาน 5-7 ปี 10-20+ ปี ใช้งานต่อเนื่อง

อายุการใช้งาน 10-20+ ปี คือเหตุผลที่เรื่องราว Technology Migration ของเรามีความสำคัญ ระบบที่เกิดปี 2542 ต้องวิวัฒน์ขณะรักษาบริการให้หน่วยงานราชการไม่สะดุด

เส้นทางเทคโนโลยี

จาก Compiere 1999 สู่ Angular 20+

จุดกำเนิด: Compiere พ.ศ. 2542 (1999)

ในปี พ.ศ. 2542 สุรีระยา ลิ้มไพบูลย์ ค้นพบ Compiere ของ Jorg Janke ซึ่งเป็นหนึ่งในระบบ ERP แบบ Open Source รุ่นแรกๆ ที่สร้างด้วย Java เธอเข้าร่วมโปรเจกต์และมีส่วนร่วมใน Thai Localization เป็นภาษาที่ 5 ต่อจากอังกฤษ เยอรมัน ฝรั่งเศส และสเปน

แต่ความสัมพันธ์กับชุมชน Compiere ไม่ยืนยาว หลังจาก contribute Thai Localization แล้ว ความพยายามที่จะ contribute เพิ่มเติมไม่ได้รับการตอบรับ โปรเจกต์ Compiere ถูกทำเป็นเชิงพาณิชย์และขายออกไป สิ่งนี้นำไปสู่การตัดสินใจที่กำหนดทิศทาง 25 ปีถัดมา: Fork codebase แล้วสร้างระบบเฉพาะทางสำหรับหน่วยงานภาครัฐไทย

ในปี พ.ศ. 2545 บริษัท แกรนด์ลีนุกซ์ โซลูชั่น จำกัด ก่อตั้งขึ้น และ Saeree ERP ถือกำเนิด หลายปีก่อนที่ ADempiere จะ fork จาก Compiere ในปี 2549 เมื่อ ADempiere fork ออกมา Thai Localization ก็อยู่ในนั้นแล้ว เพราะผู้ก่อตั้งของเราใส่เข้าไปตั้งแต่ 7 ปีก่อนหน้า

Generation 1: Compiere/ADempiere + Java Swing (พ.ศ. 2542-2562)

สิ่งที่ทำงานได้ดี

  • เสถียรภาพสูง หน่วยงานราชการใช้งานได้หลายปีโดยไม่มีปัญหา
  • Desktop Experience ที่ดี มี Keyboard Shortcuts
  • Application Dictionary ช่วยให้ Customize ได้เร็ว
  • PostgreSQL รองรับข้อมูลที่เติบโตได้ดี

สิ่งที่เป็นปัญหา

  • ต้องติดตั้ง Java Runtime บนเครื่องทุกเครื่อง
  • Version Management ยากเมื่อมีหลายร้อยเครื่อง
  • เข้าถึงระยะไกลต้องใช้ VPN
  • ใช้งานบนมือถือ/แท็บเล็ตไม่ได้
  • Developer รุ่นใหม่ไม่อยากเรียน Swing — Talent Pool หดตัว

ทำไมถึงเลือก Angular? ไม่ใช่ React, Vue หรือ jQuery

Framework ทำไมถึงพิจารณา ทำไมถึงไม่เลือก
JSP/jQuery Java dev คุ้นเคย ไม่ใช่ Framework จริงๆ — UI logic กระจัดกระจาย
GWT Java-to-JavaScript compiler Ecosystem ตายแล้ว Google ทิ้ง
Vaadin Java backend render UI Server-side rendering มีปัญหา Scalability สำหรับ 500+ users
React Ecosystem ใหญ่ Functional Programming — ต่างจากวิธีคิดแบบ Java OOP
Vue.js เรียนรู้ง่าย ยืดหยุ่นเกินไป ไม่มี Architecture บังคับสำหรับทีม 20 คน
Angular Full Framework พร้อมโครงสร้าง ชนะ! — เหมือนเขียน Java บน Web

การตัดสินใจมาจากข้อสรุปเดียว: ทีมของเราคิดเป็น Object ไม่ใช่ Function

ทำไม Angular ถึงรู้สึกเหมือน Java

Angular ไม่ใช่แค่ "ดีพอ" แต่รู้สึกเหมือนมีคนเอา Architecture ของ Java มาสร้างใหม่สำหรับ Browser

แนวคิด Java สิ่งที่เทียบเท่าใน Angular Mental Model เดียวกัน?
Classes TypeScript Classes
Interfaces TypeScript Interfaces
Dependency Injection Angular DI
Annotations (@Entity) Decorators (@Component)
Packages Modules (NgModule)
Strong Typing TypeScript
MVC Pattern Component + Template + Service
Build Tools (Maven) Angular CLI

Killer Feature: HTML แยกจาก Logic

ใน React, HTML อยู่ใน JavaScript (JSX) สำหรับ Java developer สิ่งนี้รู้สึกผิด เหมือนเอา SQL query ใส่ใน Entity class

Angular ทำแบบ Java:

budget-plan.component.ts  ← Logic (เหมือน Java class)
budget-plan.component.html ← Template (เหมือน JSP/view)
budget-plan.component.css  ← Styling
budget-plan.service.ts   ← Business Logic (เหมือน Service layer)

Java developer มองโครงสร้างนี้แล้วเข้าใจทันทีว่าอะไรอยู่ตรงไหน ไม่มี Cognitive Overhead

Generation 2: Angular 7→20+ กับ PrimeNG (พ.ศ. 2562-ปัจจุบัน)

แนวทาง Migration

  • Backend ยังเป็น Java — Jersey REST API ใช้ Business Logic เดิมที่ Swing เคยใช้
  • Angular Frontend เชื่อมต่อ API — สร้างใหม่ทีละโมดูล
  • ทั้ง 2 version รันคู่กัน — หน่วยงานเปลี่ยนโมดูลได้ทีละตัว
  • PrimeNG ให้ Enterprise UI Components — DataTable, Charts, TreeTable, Dialog พร้อมใช้

ผลลัพธ์ที่ได้

  • ไม่ต้องติดตั้งอะไร — เปิด Browser ใช้งานได้เลย
  • Responsive Design — ใช้งานบน Tablet สำหรับงานตรวจสอบภาคสนามได้
  • Dashboard แบบ Real-time — ติดตามงบประมาณด้วย Chart สด
  • Multi-agency Deployment — Codebase เดียว ปรับแต่งผ่าน Configuration
  • Developer Experience ทันสมัย — บัณฑิตจบใหม่ Contribute ได้ทันที
สถาปัตยกรรมปัจจุบัน

Saeree ERP Architecture พ.ศ. 2569

Angular 20+ Frontend
PrimeNG Components + Custom Modules
TypeScript + HTML Templates + CSS
Jersey Java REST API
Business Logic + Validation Rules
Authentication (SSO/LDAP) + RBAC
PostgreSQL Database
1,000+ Tables + 16+ Modules
Budget + Procurement + HR + Accounting
รายละเอียด ข้อมูล
FrontendAngular 20+ กับ PrimeNG
BackendJersey Java REST API
DatabasePostgreSQL
AuthenticationSSO / Microsoft Active Directory / LDAP
Access ControlRole-based, อ่าน/เขียน ควบคุมระดับ Field
AuditingFull Change Log ทุกตาราง
Modules16+ (งบประมาณ, จัดซื้อจัดจ้าง, พัสดุ, HR, เงินเดือน, บัญชี, ครุภัณฑ์, e-Saraban และอื่นๆ)
Database Tables1,000+
Usersไม่จำกัดจำนวน (ไม่คิดค่า License ต่อ Seat)
บทเรียนจาก 25 ปี

5 บทเรียนจากการพัฒนา ERP ภาครัฐตลอด 25 ปี

1. ซอฟต์แวร์ภาครัฐอายุยืนกว่าเทคโนโลยี

โค้ดบรรทัดแรกของเราเขียนเมื่อปี 2542 ผ่านการขึ้นและลงของ Applets, Flash, และ Swing มาแล้ว Business Logic ต่างหาก — งบประมาณภาครัฐ, จัดซื้อจัดจ้าง, มาตรฐานบัญชี — นั่นคือทรัพย์สินทางปัญญาตัวจริง เทคโนโลยีเป็นแค่ช่องทางส่งมอบ

2. เลือก Framework ที่ถูกต้อง ประหยัดเวลาเป็นปี

การเลือก Angular เพราะตรงกับ Mental Model ของทีม Java ทำให้ Developer productive ภายในสัปดาห์ ไม่ใช่เป็นเดือน การเลือกผิด (React สำหรับทีม Java หรือ Vue โดยไม่มีวินัยด้าน Architecture) จะเสียเวลาเป็นปีในการ Ramp-up

3. ทีม IT ภาครัฐดูแล Web App ทันสมัยได้

เราเคยกังวลว่าเจ้าหน้าที่ IT ภาครัฐจะดูแล Angular Application ได้ไหม คำตอบคือ ได้ เพราะ Angular มีโครงสร้างชัดเจน มี "วิธีทำที่ถูกต้องวิธีเดียว" คนใหม่เรียนรู้ Pattern ได้เร็ว

4. การ Migration คือโอกาส ไม่ใช่แค่ Rewrite

เราไม่ได้แค่สร้างหน้าจอเดิมใน Browser แต่ Migration เป็นโอกาสทบทวน Workflow เพิ่ม Dashboard ปรับปรุง Reporting และเพิ่มฟีเจอร์ใหม่ (เช่น e-Saraban ลายเซ็นดิจิทัล) ที่เป็นไปไม่ได้ใน Swing

5. Open Source เป็นรากฐาน ความเชี่ยวชาญเฉพาะทางสร้างความแตกต่าง

การเริ่มจาก Compiere/ADempiere ให้ฐานที่แข็งแกร่ง แต่ 25 ปีแห่งการ Customize สำหรับหน่วยงานภาครัฐไทย — 1,000+ ตาราง, 16+ โมดูล, ระบบงบประมาณที่ ERP อื่นไม่มี — นั่นคือคุณค่าที่แท้จริง

เส้นทางจาก Java Swing สู่ Angular ไม่ใช่แค่การอัปเกรดเทคโนโลยี

แต่เป็นการเปลี่ยนแปลงวิธีที่หน่วยงานภาครัฐไทยทำงานกับระบบธุรกิจที่สำคัญที่สุดของตนเอง และพิสูจน์ว่าบริษัทซอฟต์แวร์ไทยสามารถสร้าง ERP ที่เทียบเท่าและเหนือกว่า Vendor ระดับสากลได้ ด้วยการพัฒนาต่อเนื่องมากว่า 2 ทศวรรษ

ติดต่อสอบถาม เกี่ยวกับ Grand Linux