· talk · 7 min read

Odoo vs ERPNext - ฤา ERPNext จะดีกว่า?

ERPNext ดีกว่า Odoo อย่างไร ในมุมมองของ Odoo Consultant

ERPNext ดีกว่า Odoo อย่างไร ในมุมมองของ Odoo Consultant

ในบทความนี้เราจะมาอวย ERPNext กันครับ หลังจากที่ผมมองอยู่ห่างๆมานานหลายปี ในที่สุดก็ได้นำมาใช้งานจริงกับองค์กรหนึ่งที่ต้องการอัพเกรดระบบ Odoo 7 ซึ่งเราเคยทำไปเมื่อเกือบ 8 ปีก่อน มาคราวนี้ผมเลยเสนอว่าเปลี่ยนเป็น ERPNext ไปเลยน่าจะดีกว่าเพราะระบบใหม่ที่ต้องการ มีบางอย่างที่ Odoo ยังไม่ตอบโจทย์

ไม่สามารอัพเกรดได้ง่าย ต้องการใช้บน Cloud แทน In-House Server ดูแลรักษาง่ายด้วยคนในองค์กรเอง พอได้เอามาใช้จริงเลยอยากมาเล่าถึงความประทับใจ โดยตามหัวข้อที่ตั้งไว้ผมตั้งใจจะมาเล่าถึง ERPNext โดยใช้การเปรียบเทียบกับ Odoo ว่ามุมไหนบ้างที่ผมเห็นว่า ERPNext เหนือกว่าอย่างชัดเจน

ถ้าคุณพร้อมที่จะเปิดใจรับฟังมองมุมใหม่ๆแล้ว เรามาเริ่มกันเลยครับ

1. บริษัทเบื้องหลัง ERPNext - Frappe Technologies

ERPNext เป็นชื่อซอฟต์แวร์ ที่สร้างขึ้นด้วย Framework ที่ขื่อ Frappe Framework โดยบริษัทที่ชื่อ Frappe Technologies ซึ่งก่อตั้งหลังจาก Odoo S.A. ไม่นานไม่ได้เพิ่งก่อตั้งไม่นานอย่างที่ใครหลายคนเข้าใจ ได้ผ่านร้อนผ่านหนาว หาแนวทางของตัวเองมายาวนาน โดยผู้ก่อตั้งคือคุณ Rushabh Mehta เป็นชาวอินเดีย/มุมไบ ที่ได้รับการศึกษาจากสหรัฐอเมริกา

คุณ Rushabh Mehta สร้าง ERPNext เพื่อตอบโจทย์กิจการครอบครัวหลังจากที่ไม่สามารถหา ERP ที่ดีพอได้ ที่มีในตลาดทั้งราคาสูงและไม่ยืดหยุ่น จริงๆประเด็นนี้คล้ายกับการเกิดขึ้นของ Odoo โดยคุณ Fabien Pinckaers แต่สิ่งที่ทำให้ ERPNext เริ่มต้นอย่างแตกต่างจากคนอื่นและ Odoo คือการเลือกหลักการทำงานแบบ Meta Framework มาตั้งแต่แรก นั่นคือ ให้ Data Model / UI / Logics / Workflows และสิ่งละอันพันละน้อยของระบบ สามารถสร้างขึ้นได้จากการสร้างข้อมูลหรือตั้งค่าระบบให้มากที่สุด และเขียนโค้ดให้น้อยที่สุด โดยทุกอย่างให้ Frappe Framework เป็นตัวจัดการ เมื่อเป็นแบบนี้การพัฒนาจะช้าในช่วงแรกๆ เพราะการจะสร้างฟีเจอร์อะไรใหม่ขึ้นมาจะไม่ใช่การเขียนโค้ดไปสร้างโดยตรง แต่จะเป็นการเขียนโค้ดไปสร้างฟังก์ชั่นที่จะใช้ในการสร้างฟังก์ชั่นนั้นๆอีกที (Ref: Origin of ERPNext) ซึ่งสิ่งนี้ในปัจจุบันใช้ศัพท์ใหม่ที่กำลังอินเทรนด์ นั่นคือ Low Code / No Code

เมื่อผ่านช่วงเวลาที่ยากลำบากผลลัพธ์ที่ได้คือ ในปัจจุบัน ERPNext เป็นซอฟต์แวร์ที่มีความเสถียรและมีค่าบำรุงรักษาต่ำ ไม่ต้องใช้นักพัฒนาจำนวนมากในการดูแล ทีม Frappe เป็นทีมที่เล็กถ้าจำไม่ผิด 4-5 ปีก่อนทั้งบริษัทมีแค่ 20 คน ปัจจุบันถือว่าเติบโตขึ้นมากแล้ว ก็ยังมีพนักงานระหว่าง 60-80 คน เท่านั้น ซึ่งน้อยมากถ้าเทียบกับหลายพันคนของ Odoo S.A. เมื่อเทียบสิ่งที่ทำได้จากจำนวนคนเท่านี้ ผมถือ Efficiency ต่อคนของทีม Frappe เหนือกว่าของ Odoo แบบห่างไกล

อีกเรื่องที่ผมชื่นชมคือแนวคิดด้าน Design โดย Frappe จะให้ความสำคัญกับประสบการณ์ของผู้ใช้งานเป็นอย่างมาก มี Designer ด้าน UI/UX และการมีการ Redesign อย่างต่อเนื่อง ถ้าคุณได้ลองไปที่เวปไซต์ หรือได้ลองทดสอบระบบดู จะเห็นถึงความเป็นมินนิมอลและมาตรฐานที่สูงของ Frappe ในทุกๆส่วนของเวปไซต์ (Ref: Human and Design, ERPNext V13 redesign)

Frappe เป็นบริษัทที่มีวัฒนธรรมที่มีความเป็นประชาธิปไตยสูงมาก Core Value คือ Transparency และ Freedom of speech กระจายอยู่ในทุกสิ่งที่ทำ หนึ่งในเรื่องที่เป็นรูปธรรมมากๆคือเรื่องให้พนักงานเลือกเงินเดือนตัวเอง ซึ่งผมว่าถ้าไม่แน่จริงทำไม่ได้

ความแปลกใจกลายเป็นความชื่นชม การเลือกใช้ Frappe สำหรับผมจึงไม่ใช่แค่ตัวซอฟต์แวร์ แต่มองลึกไปถึงตัวบริษัทและผู้ก่อตั้งด้วย

ERPNext Dev Meetup

ปี 2018 - ทีม Ecosoft เข้าร่วม Developer Meetup ที่ Jarkatar และได้พบกับคุณ Rushabh Mehta

Ref: https://erpnext.com/blog/community/taking-erpnext-to-jakarta-and-east-asia

2. 100% Open Source

ผมอยู่ในวงการซอฟต์แวร์มาตลอดและเคยอยู่ในวงการซอฟต์แวร์แบบ propritery ที่เน้นยอดขายป็นหลัก และผมก็เคยรู้สึกแย่ๆกับซอฟต์แวร์ราคาแพงที่มักโอ้อวดเกินความจริงแต่สุดท้ายไม่สามารถส่งมอบสิ่งที่สัญญากับลูกค้าได้ แนวทางแบบ vendor lock-in ที่พยายามผูกพันให้ลูกค้าอยู่ติดกับตัวเองโดยไม่ให้ทางเลือก

จนเมื่อ 10 กว่าปีที่แล้วผมได้พบกับซอฟต์แวร์แบบ Open Source มันดูจริงใจ เปิดเผย ไม่โอ้อวด รวมทั้งเปิดโอกาสให้ผู้ใช้งานมีสิทธิ์แสดงความเห็นและช่วยพัฒนาต่อยอด หลังจากนั้นผมก็ไม่เคยหันไปมองซอฟต์แวร์ที่ไม่ใช่ Open Source อีกเลย

ดังนั้นความเป็น Open Source เป็นสิ่งที่ไม่พิจารณาไม่ได้ ซอฟต์แวร์โอเพ่นซอร์สดีๆหลายตัวเริ่มต้นด้วยแนวทางแบบ 100% Open Source เพื่อดึงดูดนักพัฒนาผู้ร่วมอุดมการณ์ แต่พอประสบความสำเร็จกลับหักหลังเอาดื้อๆก็มีให้เห็นอยู่

Odoo เองตอนเริ่มต้นก็เป็น Open Source 100% ก่อนที่ตอน Version 9 ได้เปลี่ยน License จาก AGPL (Open Source) มาเป้น LGPL (Open Core) แบ่งระหว่าง Community ให้ใช้ฟรีแต่อัพเกรดไม่ได้ และ Enterprise แบบเสียเงินที่มีฟีเจอร์มากกว่าและสามารถอัพเกรดได้ และในเวอร์ชั่นถัดๆมา หลายโมดูลสำคัญถูกถอดออกจาก Community Version เป็นดราม่าให้คอยติดตาม

ต้องยอมรับความจริงว่าบริษัท Odoo S.A. ค่อยๆลดความเข้มข้นของความเป็น Open Source ลง เน้นการตลาดมากขึ้นแต่ฟัง Community น้อยลง

ผมคงบอกไม่ได้ว่าแบบไหนดีกว่า เพราะการตลาดที่ดีก็ส่งผลดีกับนักพัฒนาและบริษัทที่รับวางระบบเหมือนกัน แล้วแต่จะมอง ส่วนเรามาแนว Open Source เราก็คงชอบแบบที่มันสุดไปในทางของเรา

แต่กับ Frappe ที่นอกจากจะไม่เคยเปลี่ยนแนวทางตลอดสิบกว่าปีที่ผ่านมา ดูเหมือนความเป็น Open Source กลับเข้มข้นมากขึ้นด้วยซ้ำ Open แบบไม่ประณีประนอมใดๆ

มีเคสนึงอยากแชร์ให้ฟัง บริการสำคัญที่ทำให้บริษัท Frappe เริ่มมีอิสระทางด้านการเงินคือ Frappe Cloud เป็น Software as a service สำหรับ Frappe Products ทั้งหมดรวมถึง ERPNext ด้วย ซึ่งสำหรับบริษัทแล้วนี่คืออาวุธลับของการหารายได้และคงไม่มีใครว่าถ้าจะเก็บ source code ไว้เป็นของตัวเอง แต่ในงาน ERPNext Conference 2022 ในเดือนตุลาคมที่ผ่านมา ทีม Frappe Cloud นำโดยคุณ Aditya Hase ได้ทำให้ทุกคนประหลาดใจด้วยการประกาศว่าแม้แต่ Frappe Cloud ก็จะเปิดโค้ด ด้วยเช่นกัน

อนาคตเป็นสิ่งไม่แน่นอน แต่ถ้าให้คาดการณ์ถึงบริษัทที่น่าจะคงความเป็น 100% Open Source ไปตลอดผมว่าน่าจะเป็น Frappe Technologies

3. Low Code / No Code

ถ้าให้เลือกเพียงข้อเดียวในสิ่งที่ ERPNext เหนือว่า Odoo ผมจะให้เรื่องความเป็น Low Code / No Code

ในปัจจุบัน กระแส Low Code / No Code มาแรง และมีซอฟต์แวร์ประเภทนี้หลายตัว (เช่น AppSmith, Retools, Bubble, etc.) แต่ Frappe เป็นตัวเดียวที่ออกแบบมาเพื่อสร้างระบบที่ซับซ้อนอย่าง ERP โดยเฉพาะ

ERPNext ให้ผู้ใช้งานสร้าง App โดยไม่ต้องเขียนโค้ดแต่ใช้การสร้าง DocType และการปรับแต่งค่าต่างๆผ่าน UI ของระบบโดยตรง (เทียบเท่ากับการสร้าง Model / View / Actions ใน Odoo)

ยกตัวหน้าต่างใหม่ที่ผมสร้างขึ้น โดยสร้าง Doctype ชื่อว่า Cash Holder Summary

เมื่อต้องการปรับแต่ให้เลือกเมนู Customize ระบบจะเข้าโหมดเพื่อการปรับแต่ง Data Model และ View ได้โดยตรง เสร็จแล้วกดปุ่ม Update และกลับมาใช้งานต่อเนื่องได้ทันที

ส่วนที่ซับซ้อนกว่า CRUD ระบบ Frappe ก็สามารถทำได้ทั้งการเขียน Low Code ทั้ง Server Script (Python), Client Script (Javascript) และการปรับแต่งอื่นๆ

ยกตัวอย่างเช่น Script ด้านล่างจะทำงานเมื่อเอกสาร Expense Claim มีการ Update เพื่อตรวจสอบ Tax Base Amount และส่งข้อความเตือนหากไม่ถูกต้อง

ในเรื่องการ Customize ระบบด้วย Low Code ถ้าหากสนใจรายละเอียดมากกว่านี้ ผมมีเขียน Tutorial ไว้ที่ Frappe Low Code 101

ในตอนนี้ขอสรุปเพียงแค่ว่าด้วย Frappe Low Code เราสามารถทำได้เกือบทุกอย่างไม่ว่าจะเป็น Data Model, UI/UX, Workflow, Onchange, Computed Field, Printout, Reports, Views, Chart, Graphs, Menus และสิ่งที่ทำสามารถ Export ออกไปติดตั้งที่ Site อื่นได้ ทั้งนี้การเขียน Script ผ่านหน้าจอแบบ Low Code นี้เป็นหนึ่งในทางเลือก การเขียนโค้ดบนไฟล์แบบปกติแบบ Odoo ก็สามารถทำได้เช่นกัน

กล้บมาที่ Odoo บ้าง การสร้างโมดูลใหม่หรือการปรับแต่งระบบ ไม่ว่าเล็กน้อยแค่ไหนก็ต้องใช้โปรแกรมเมอร์และต้องมีข้้นตอนการ Deployment บน Server เสมอ บางคนอาจบอกว่า Odoo มี Studio ที่เป็น Low Code เหมือนกัน ไม่จริงครับ ถ้าดูแบบเผินๆหรือใช้เพื่อการทำ Demo ผมว่าโอเคนะ แต่ถ้าใช้จริงจะมีปัญหาในระยะยาว เพราะ Studio เป็นเพียง UI ที่มาครอบการเขียนโค้ดที่ยุ่งเหยิงกว่าเดิม ดูแล้วไม่มีวันที่จะเป็น Low Code ได้เลย คนที่มีประสบการณ์จะบอกให้อยู่ห่างๆจาก Studio เอาไว้

ในขณะที่ Frappe สร้างด้วยแนวทาง Low Code โดยเฉพาะตั้งแต่วันแรก วิถี Low Code จึงเป็นวิธีธรรมชาติในการส้าง App ด้วย Frappe ตั้งแต่คำว่า Low Code ยังไม่แพร่หลายด้วยซ้ำไป

ผู้ที่ได้เริ่มต้นกับทั้งสองระบบจะบอกได้ว่า Frappe Framework เรียนรู้ได้ง่ายและตรงไปตรงมากว่า Odoo Framework แต่ที่สำคัญกว่าความง่ายหรือยาก คือการสามารถปรับแต่งระบบบน Production แล้วได้อย่างยืดหยุ่น ใช้งานต่อนเนื่องได้โดยไม่มี Downtime และลดต้นทุนในการดูแลระบบ

4. Consistency

หัวข้อนี้ผมตั้งใจอยากสื่อถึง UI/UX ที่มีกรอบมาตรฐานการใช้งานสูงซึ่งเป็นผลโดยตรงจากความเป็น Meta Framework / Low Code อันที่จริงสำหรับ Odoo ก็มีความเป็นกรอบมาตรฐานการใช้งานเช่นกันเพียงแต่ Frappe มีมากกว่า ผมขอยกหนึ่งตัวอย่างเพื่อให้เห็นภาพ เช่นเรื่องสถานะของเอกสาร (Status) และปุ่มเพื่อเปลี่ยนสถานะ (Button Action)

ในแต่ละเอกสารของ Odoo จะมี Status และ Action ได้ไม่จำกัดเพราะทุกอย่างเป็นการเขียนโปรแกรมขึ้นมาเอง เช่นเอกสาร RFQ อาจมี 4 Status (รวม Cancel ด้วย) และมีปุ่ม Action ต่างๆเพื่อเปลี่ยนสถานะหนึ่งเป็นอีกสถานะหนึ่ง

ในขณะที่ Frappe จะใช้การตั้งค่า Doctype ให้เป็นแบบ Submittable แค่นั้น (ไม่มีการเขียนโค้ด) โดย Document Status จะมีเพียง 3 สถานะ คือ 0-Draft, 1-Submitted และ 2-Cancelled โดยที่ปุ่ม Action ที่ใช้ได้จะปรากฏเองตามสถานะ เป็นแบบนี้เหมือนกันในทุกๆเอกสาร

ดูเผินๆเหมือน Frappe ขาดความยืดหยุ่นในเรื่องนี้ แต่อย่างที่โปรยไปตั้งแต่ต้นว่านี่เป็น Framework ที่สร้างขึ้นมาเพื่อสร้าง ERP เฉพาะและทุกอย่างได้เตรียมไว้หมดแล้ว โดยการสร้าง Workflow ผูกกับ DocType นี้ตัวอย่างในรูป โดยไม่มีการเขียนโค้ดเหมือนกับ Odoo

การมีการทำงานที่มาตรฐานกว่าทำให้ระบบทำงานตรงไปตรงมาและคาดเดาได้ง่าย (Simple and Predictable) ส่งผลโดยตรงต่อความเสถียรของระบบโดยรวม

5. Fit with Local Business

จากการได้สัมผัสกับระบบดูเหมือนว่า ERPNext จะมีฟีเจอร์การทำงานที่เหมาะกับประเทศไทยมากกว่า เรื่องนี้อาจจะเป็นความเห็นส่วนตัวของผมอยู่บ้างนะ เพราะจากการที่ผมทำงานกับ Odoo มานานผมรู้สึกตลอดมาว่า Odoo แบบ Out of the box ไม่ค่อยมีฟังก์ชั่นที่ตอบโจทย์บ้านเราเท่าไหร่ ต้องพึ่งพา Community Modules จำนวนมากในการทำให้ตอบโจทย์ทั่วๆไปของประเทศเรา ตัวเอย่างเช่น

  • Odoo ไม่มี Employee Advance / Expense Clearing จะมีก็แต่ Expense Claim แต่ ERPNext มี
  • Odoo Payroll ไม่รองรับการเงินเดือนขาดลามาสายหักเงิน แต่ ERPNext ทำได้
  • Odoo ไม่มี Employee Loan สำหรับให้พนักงานยืมเงินเป็นสวัสดิการ แต่ ERPNext มี
  • Odoo ไม่มีส่วนลดแบบหลายชั้นและส่วนลดท้ายบิล แต่ ERPNext มี
  • และอื่นๆ

หลักคิดของ ERPNext ดูจะโน้มเอียงข้างมาทางเอเชียแบบเราๆและประเทศกำลังพัฒนาที่ปกติธุรกิจจะซับซ้อนกว่าฝั่งประเทศพัฒนาแล้ว บางฟีเจอร์ที่ตะวันตกไม่ใช้อาจเรื่องปกติในบ้านเรา

6. Carefully Crafted Features

ผมให้คำนิยาม ERPNext ว่าเหมือน Apple ในเรื่องการให้ความสำคัญการผู้ใช้และความพิถีพิถันในรายละเอียด ผมจะขอยกตัวอย่างหนึ่งที่เห็นได้ชัดเจนคือเรื่อง Print Form ซึ่งถือเป็นส่วนที่ใช้เยอะมากในระบบอย่าง ERP

ใน Odoo เราจะใช้ QWeb ซึ่งเป็น file XML ในการทำฟอร์มต่างๆ อาจมีทางเลือกอื่นๆบ้างเช่น Jasper iReport แต่ไม่ว่าวิธีไหนสิ่งที่ร่วมกันคือ ซับซ้อน มี Deployment Step และดูราคาถูก

Odoo จนถึง Version 16 ทำงานแบบเดิม คือมีฟอร์มให้เลือกและคลิกเพื่อดาวน์โหลดเป็น PDF

ส่วน ERPNext ซึ่งเป็น Low Code จะมี Form Builder สามารถ Drag Drop เพื่อสร้าง และส่วนที่ต้องการความละเอียดเพื่อเติมสามารถใช้ Html/Jinja template component ได้

เมื่อกดปุ่มพิมพ์ที่หน้าต่างเอกสาร ระบบแสดงหน้าต่าง Print Preview โดยเฉพาะ

  • สามารถเลือก Print Format และภาษาได้
  • Full Page
  • Refresh Page
  • Print Button

ข้อดีของ Low Code คือเมื่อระบบ Go Live ไปแล้ว แต่เรื่องการปรับฟอร์มมักจะยังไม่จบ ฟีเจอร์นี้ช่วยได้เยอะมากเพราะสามารถแก้ไขบนหน้า Design จะคลิก Refresh ดูผลลัพธ์ได้ทันที

อีกตัวอย่างที่ผมชอบคือเรื่อง Data Import ซึ่งจะมีหน้าต่างเฉพาะสำหรับทุกประเภทข้อมูล

และความสามารถเด่นๆอย่างเช่น

  • มี Job Queue เพื่อรองรับ Batch ขนาดใหญ่
  • มี Real Time Progress Bar
  • ใช้ข้อมูลจาก Google Sheet
  • เก็บประวัติการ Import ทั้งหมดในที่เดียว
  • สามารถ Export เฉพาะข้อมูลที่ผิดโดยเฉพาะ เพื่อแก้และ Import กลับอีกครั้ง

Tools อะไรที่มีเหมือนๆกัน ดูเหมือนว่า Frappe มักจะทำได้ละเอียดกว่าเสมอ

7. Security and Audit Logs

ERPNext จัดเต็มในเรื่องความปลอดภัยและการตรวจสอบย้อนหลัง ไดยไม่ต้องพึ่งโมดูลเสริมเหมือนกับ Odoo หรือต่อให้เสริมแล้วผมก็ยังไม่แน่ใจว่า Odoo จะทำได้เทียบเท่า ERPNext หรือไม่

เรื่อง Security กับ Audit Log เป็นเรื่องใหญ่ของระบบ ERP เพราะไม่ว่าระบบจะมีฟังก์ชั่นงานมากมายขนาดไหน ขาดเรื่องนี้ไปอาจไม่ถูกเลือกใช้ในองค์กรได้ เช่นเคยผมขอยกมาเฉพาะบางเรื่องเช่น

การจัดการด้านสิทธิ์ผู้ใช้งาน ที่ใช้งานง่ายและละเอียดกว่า จะเห็นว่าสิทธิ์ของแต่ละเอกสาร ละเอียดถึง Actions, Print, Share, Export ทุกอย่างครบจบในหน้าต่างเดียว

ถ้าเข้าไปที่หน้าต่าง User เราจะเห็นฟังก์ชั่นด้าน Security เยอะมาก ขอยกซักตัวอย่างหนึ่งที่ผมชอบเป็นพิเศษ คือเรื่องการ Restrict IP เหมาะกับองค์การที่ไม่ต้องการพนักงานใช้ระบบจากนอกองค์กรเป็นต้น

ส่วนการจัดการ Audit Log แบบต่างๆ และการลบ Log เก่า ครบจบในหน้าต่างเดียวเช่นกัน

Log ทุกประเภทเก็บอย่างละเอียดและอ่านเข้าใจง่าย

ทุกเอกสารทำงานเก็บทุกการเปลี่ยนแปลง เปรียบเทียบข้อมูลเก่าและใหม่

Security และ Audit Log ของ ERPNext นี่คือของจริงโดยไม่ต้องแต่งเติม

8. Scability

สำหรับคนที่มีเคยวางระบบใหญ่ๆด้วย Odoo ต้องเคยเจอปัญหา Performance เวลาที่ทำงานกับฐานข้อมูลใหญ่ๆ ปัญหาหลักจะเกิดที่จากระบบ ORM (Object Relation Mapping) ของ Odoo ซึ่งเป็นระบบที่ดีมากนะ เพราะทำให้เขียนโปรแกรมดึงข้อมูลได้ง่ายมาก แต่ก็แลกมากด้วยการ SQL Join อย่างมหาศาลและมีปัญหาเมื่อข้อมูลเพิ่มมากขึ้น อีกเรื่องหนึ่งคือการไม่มีระบบ Background Pocess ที่ดีที่จะคอยทำงานเบื้องหลังโดยที่ไม่กระทบกับการใช้งานของผู้ใช้งาน Odoo รู้ปัญหาตัวเองดีและพยายามปรับปรุงอย่างต่อเนื่องและชูเป็นจุดขายในทุกๆครั้งที่ออก Version

Odoo เพิ่งจะมี Background Process ใช่ช่วงหลังแต่ก็ยังไม่คลอบคลุม ในขณะที่ฝั่ง ERPNext มีฟังก์ชั่นนี้มานานแล้ว มีการจัดการที่ดีและใช้งานอย่างแพร่หลายในระบบ

ตอนเริ่มศึกษา ERPNext ใหม่ๆผมพบว่า Frappe มีฟิลด์ Name แบบ String และใช้เป็น foreign key แทนที่จะใช้ ID แบบ Integer ซึ่งเรื่องที่ขัดใจผมมากในตอนแรก เพราะผมเข้าใจมาเสมอว่า Database Normalization ต้องใช้ ID แบบ Integer และใช้ SQL Join เสมอหากต้องการ Name จากอีก Table

ยกตัวอย่างหน้าจอแสดงผล Purchase Order ใน ERPNext ซึ่งสำหรับผู้ที่เข้าใจ Technical ก็จะรู้ว่าถ้าเป็น Odoo จะต้องมีการ SQL Join เพื่อดึง Name มาจาก Master Table อย่างน้อย 5 tables (Supplier, Company, User, Warehouse, Item)

แต่ถ้าเป็น ERPNext จะไม่มี SQL Join เกิดขึ้นแม้แต่ครั้งเดียว เพราะข้อมูล Name ที่เห็นในทุกฟิลด์เป็นการแสดงข้อมูลจาก table Purchase Order โดยตรง เพราะ Frappe ใช้ Name String เป็น Foreign Key แทนการใช้ ID Integer

ตัวอย่าง Query จะแสดงให้เป็นการเก็บข้อมูลของ Purchase Order

select supplier, company, requested_by from `tabPurchase Order` where name = ‘PO-2023-01150’

มีคำถามว่าการใช้ Name String เป็น Foreign Key แบบนี้จะมีปัญหาอื่นๆหรือไม่ เช่นการ Rename จาก Master Table ผมตอบให้เลยว่าไม่มี เพราะ Framework มีการจัดการเรื่องเหล่านี้ไว้หมดแล้ว

Performance Tuning สามารถใช้เทคนิกต่างๆช่วยได้ แต่ถ้าจะปรับโครงสร้างข้อมูลซึ่งเป็นต้นตอของปัญหาเลย ไม่ใช่เรื่องง่าย นี่เป็นเหตุผลหนึ่งที่ผมเชื่อว่าอย่างไรเสีย ERPNext ก็เหนือกว่า Odoo แน่นอน

9. Upgrade is Free and Easy

สำหรับคนที่เริ่มติดตั้ง Odoo ด้วยเวอร์ชั่นล่าสุด อาจยังไม่คิดถึงเรื่องการอัพเกรดในอนาคตมากนัก แต่สำหรับระบบที่รันมาเป็น 10 ปีและอัพเกรดไม่ได้ มันคือความเสี่ยงและการเสียโอกาส

นอกจากซอฟต์แวร์ทุกตัวของ Frappe จะไม่มีข้อจำกัดด้าน License แล้ว ด้วยสถาปัตยกรรมของระบบเอง ยังทำให้การอัพเกรดเป็นเรื่องง่ายในเชิงเทคนิกอีกด้วย ขั้นตอนการอัพเกรดก็มีเพียง

  • > git pull (อัพเดทโค้ดให้เป็นล่าสุด)
  • > bench migrate (อัพเกรด)

ถามกลับว่าทำไมการอัพเดทระบบ Odoo ถึงยุ่งยากกว่า สำหรับนักพัฒนาจะรู้ว่าสถาปัตยกรรมของ Odoo มีความเป็น Modular สูงมาก ในแต่ละโปรเจคอาจมีโมดูลที่ต้องติดตั้งถึงหลักร้อย ซึ่งแต่ละโมดูลจะมี การเกาะเกี่ยวกันอย่างแน่นหนา การอัพเดทโมดูลหนึ่งๆจะกระทบกับโมดูลอื่นๆเป็นทอดๆ ดังนั้น DevOps ของโปรเจคจะต้องดีพอควร ถ้าต้องการอัพเดท Major Version ต้องมี Enterprise License เท่าจำนวนผู้ใช้งานและส่ง database ไปที่ Odoo S.A. เพื่อรับการอัพเดท ส่วน extra modules และ custom modules ก็ต้องให้แน่ใจว่าได้รับการอัพเดทซอร์สโค้ดให้เข้ากับ Version ใหม่เช่นกัน

ย้อนมาที่ Frappe Framework สถาปัตยกรรมระบบจะไม่เป็น Modular เท่ากับ Odoo สามารถแตกโมดูลได้หรือเขียนโมดูลเพิ่มได้เพียงแต่ระบบโมดูลจะไม่ได้ยิบย่อยเหมือน Odoo จะเป็นโมดูลหลักๆในแต่ละ Business Area มากกว่าและแต่ละโมดูลก็ไม่ได้ยึดโยงกันแน่นเหมือน Odoo และ extra module มีแนวโน้มใช้งานได้ในเวอร์ชั่นใหม่ๆโดยไม่ต้องปรับแต่งอะไรเพิ่ม

Odoo มีชื่อเสีย(ง) ในเรื่องมักเปลี่ยนโครงสร้างข้อมูลใน Odoo Core ในเวอร์ชั่นใหม่โดยไม่ปรึกษาหรือสื่อสารกับชุมชนนักพัฒนาทำให้ Community Modules ต้องคอยปรับโค้ดตาม เป็นดราม่าใน Twitter อยู่เนืองๆ ตัวอย่างล่าสุดเช่น Analytic Tag ถูกถอดออกใน Version 16

ในขณะที่ฝั่ง ERPNext ไม่ค่อยมีการเปลี่ยนโครงสร้างระบบรุนแรงในแต่ละ Release จะออกแนวคงของเดิมไว้แต่สร้างของใหม่ขึ้นมาเสริมมากกว่า (New DocTypes) หรือหากมีการเปลี่ยนแปลงก็จะปรึกษาใกล้ชิดกับขุมชนนักพัฒนา

ผมใช้บริการ Frappe Cloud ซึ่งเป็น Hosting สำหรับ ERPNext โดยเฉพาะ การอัพเกรดก็ทำได้อย่างง่ายดายเช่นกัน สิ่งที่เพิ่มขึ้นมาคือระบบคลาวด์จะเตือนว่ามีโค้ดได้รับการอัพเดท กดปุ่ม Update Now ระบบจะรันคำสั่งดังกล่าวให้เสร็จสิ้น

Frappe Cloud เป็นบริการหนึ่งซึ่งผมชอบมาก ใช้งานง่ายกว่าและราคาถูกมากเมื่อเทียบกับOdoo.sh ปัจจุบันผมรันอยู่ 6 sites (เริ่มต้นที่ $10/Mo. ไม่จำกัดจำนวนผู้ใช้) ตั้งแต่เริ่มใช้มาการอัพเดทระบบไม่เคยมีปัญหาแม้แต่ครั้งเดียว

10. Frappeverse

Frappe Framework พัฒนามาถึงจุดที่เสถียรมากแล้ว Product ใหม่ๆของทีม Frappe สามารถทำได้รวดเร็วและต้นทุนต่ำ การมาถึงของ Frappe Cloud ช่วยให้ทีม Frappe ไม่มีปัญหาด้านการเงินและเริ่มออก Product ที่หลากหลายกว่าแค่ ERPNext ในชื่อ Frappeverse

Frappeverse ประกอบไปด้วย Product ที่หลากหลายโดยทั้งหมดจะฐานเดียวกันคือ Frappe Framework แต่ละ Product Team ก็จะมี Technology และตลาดใหม่ๆเป็นของตัวเองโดยที่ ERPNext ยังเป็น Flagship Product ของ Frappe อยู่

Frappeverse ซึ่งเป็น 100% Open Source และบางตัวมี SASS ให้บริการแล้วในปัจจุบัน ประกอบด้วย

  • Frappe Framework - สำหรับพัฒนาอะไรก็ได้แบบ Low Code
  • ERPNext - ERP / CRM / SCM
  • Frappe HR - HRMS เช่น Payroll, Employee Selfservice, Loan, Leave, Attendance
  • Frappe Insight - Business Intelligence & Visualizatoin
  • Frappe Books - ซอฟต์แวร์บัญชีแบบบ offline
  • Gameplan - ซอฟต์แวร์สำหรับการสื่อสารและทำงานร่วมกันในองค์กร
  • Frappe Desk - ระบบ Helpdesk
  • Frappe LMS - ระบบ Learning Management System
  • Frappe Healthcare - ระบบการจัดการสถานพบาบาล
  • Frappe Wiki - สร้างเอกสาร wiki
  • Frappe Drive - จัดการเอกสารและๆไฟล์

ในอดีตคนจะรู้จักแต่ ERPNext แต่ไม่รู้จัก Frappe Framework การมี Frappeverse ทำให้ Frappe Technology ขยับตัวเองออกมาจากการแข่งขันในตลาด ERP เพียงอย่างเดียว การได้มีตลาดอื่นๆน่าจะทำให้ทีม Frappe แข็งแกร่งขึ้นในขณะที่ผู้ใช้งานที่เลือก Ecosystem ของ Frappe ก็จะมีซอฟต์แวร์ใช้งานที่หลากหลายมากขึ้นด้วย และแน่นอนทั้งหมดเป็น 100% Open Source

บทสรุป

ใครที่อ่านมาจนถึงตรงนี้และเริ่มเสนใจ Frappe / ERPNext ผมว่านี่จะเป็นเวลาที่ดีมากที่จะเริ่มต้น แม้ว่า ERPNext จะเป็นที่รู้จักในตลาดน้อยกว่า Odoo มาก แต่ก็มีความสามารถทีเฉพาะตัวที่น่าสนใจไม่น้อย

ส่วนตัวผมมองว่า ERPNext และ Odoo เป็นซอฟต์แวร์ทางธุรกิจที่ดีมากทั้งคู่ การที่ผมเขียนบทนี้ขึ้นมาไม่ได้สื่อว่า Odoo น่าสนใจน้อยกว่าแต่อย่างใด ผมมองว่ามันทำให้เราในฐานะผู้ใช้หรือผู้วางระบบมีอิสระมากขึ้นในการเลือก และยิ่งถ้าเราใช้ใจความแตกต่าง เรายิ่งสามารถเลือกสิ่งที่ดีที่สุดตามสถานการณ์

แต่ถ้าสุดท้ายแล้วในกรณีของคุณยังคงคิดว่า Odoo เป็นคำตอบสุดท้าย แต่คุณยังเป็นห่วงในเรื่องความเป็น 100% Open Source ผมแนะนำว่าให้คุณไปเข้าร่วมกับกลุ่ม OCA (Odoo Community Association) ผมเชื่อวันมันเป็นทางเดียวที่ถูกต้อง หากยังต้องการใช้ Odoo CE ให้เป็นและยึดมั่นในวิถิแห่งโอเพ่นซอร์ส

by Kitti U.

Back to Blog