在這幾天的文章中我們認識了 ERP 系統中的基本模組,相信大家都了解這些模組存在的原因。
今天的文章我們會一起粗略地看看這些 ERP 系統大致上是怎麼樣設計的,以及我們該如何在這個架構下進行客製化。
不管是 SAP、Oracle、Dynamics 365 或是我比較熟悉的 Acumatica ERP,都是以這樣的架構為前提來進行設計,但在開發前的環境和開發中的眉角會是不相同的。
大部分的 ERP 系統會由四個不同的框架串在一起,分別是
看到這裡大家應該很清楚了,其實大部分的 ERP 都沒有前後端分離,也不會需要撰寫 REST 或設計 UI 特效,因為這個系統是供內部使用的,大部分的客製化和開發改版只會注重在功能層面,連架構都不太會去優化或改得更現代。
我把客製化的項目分成三項:
當然,現在的 ERP 系統大部分都支援 No-Code 開發,可以藉由各家廠商設計的框架利用簡單的流程圖拖曳或 checkbox 來進行客製化的管理與開發,這讓客製化開發變得更加得容易。
ERP 系統的客製化工程師要具備的技能點其實很廣:
在我眼中把客製化專案包包成一個 .xml
檔案,是一個邪教。
單單一個檔案就包含了所有的設定檔和程式邏輯,根本繁雜到無法進行版控,這也是為什麼很多 ERP Team 的板控都還是很古老的日期版控法、聊天室版控法或 Google Drive 版控法。
解決方法有很多,在我的團隊裡,我們將肥大的 .xml
decode 成可以被板控的各個檔案,並且在程式 code review 完後,再把 Git 上的檔案 encode 成可以在 ERP 平台發佈的專案包,簡單又好用。
Dynamics 365 - Get started with app making and customization
microsoft - Dynamics365-Apps-Samples
Oracle - Create Customizable Applications
MislavJaksic - SAP-ABAP-Development
Acumatica - Help-and-Training-Examples