據(jù)驅動+微服務)vs Oracle EBS / Fusion(物理表+PLSQL+API))
一、華為 MetaERP 里的「元數(shù)據(jù)驅動」到底是什么元數(shù)據(jù)驅動Metadata-Driven不是“把字段配置放數(shù)據(jù)庫里”這么簡單而是把系統(tǒng)結構本身? 當數(shù)據(jù)存。在 MetaERP 中元數(shù)據(jù)層描述業(yè)務對象采購訂單、發(fā)票、憑證、物料字段名稱、類型、是否必填、默認值、可見性對象關系一對一、一對多、級聯(lián)校驗規(guī)則、權限策略、審批流界面列表/表單/儀表盤怎么畫映射到物理表的規(guī)則由遷移引擎生成真實表不是 EAV 萬能值表運行時發(fā)生什么你在元數(shù)據(jù)引擎里定義“采購訂單加一個 Project Reference 字段”→ 引擎自動在物理庫生成/變更表列或通過動態(tài) ORM 映射生成 CRUD API渲染前端表單校驗掛接權限與審計不改 Java/Go 代碼、不重啟、不碰核心表結構。關鍵點元數(shù)據(jù)是“真理源”物理表是元數(shù)據(jù)的投影不是反過來。二、MetaERP 里的「微服務」是什么MetaERP 把傳統(tǒng) ERP 拆成領域服務采購服務自己庫PO_HEADER / PO_LINE 等價物發(fā)票服務、付款服務、庫存服務會計科目服務、規(guī)則引擎服務、主數(shù)據(jù)服務特征每個服務獨立部署、獨立 Schema/分庫、K8s 容器化服務間不直連對方表只通過 RPC/REST 消息事件協(xié)作跨服務一致性用Saga 補償事務不是單庫 COMMIT業(yè)務動作發(fā)事件“發(fā)票已匹配 PO”→ 財務服務監(jiān)聽 → 實時記憑證對比單體EBS 里 PO 保存→觸發(fā)器→AP 校驗→GL 過賬全在同一個 Oracle 庫一個事務里MetaERP 里這是三個服務的本地事務 事件串聯(lián)。三、元數(shù)據(jù) vs Oracle EBS / Fusion 的「數(shù)據(jù)庫表和字段」1. 表是誰定義的維度Oracle EBS / FusionMetaERP元數(shù)據(jù)驅動表結構來源人寫 DDLPO_HEADERS_ALL、AP_INVOICES_ALL 是固化物理表元數(shù)據(jù)引擎代碼生成/動態(tài)映射出物理表加字段建表/加列 DDL 改 Form 改并發(fā)程序 可能改 PLSQL在元數(shù)據(jù)里加一條 Field 記錄引擎同步物理列表與業(yè)務對象關系業(yè)務對象≈物理表1:1 很重業(yè)務對象元數(shù)據(jù)定義物理表是其運行時投影?彈性域角色EBS 用 Key Flexfield 把多維度拼成 CCID 大寬表維度是獨立元數(shù)據(jù)實體可插拔不拼字符串多租戶擴展_ALL 表 ORG_ID 過濾定制易污染標準表租戶元數(shù)據(jù)層疊加標準內核不動2. 字段語義差別EBS 字段SEGMENT1…SEGMENT30在 CCID 里代表公司/科目/部門含義靠彈性域配置解釋物理上就是字符串段ATTRIBUTE1…15是預留自定義列類型死板。Fusion 字段比 EBS 封裝深表高度抽象業(yè)務走 Service/VO/Entity Object但底層仍是預置物理模型擴展靠 EFFExtended Flexfield或 PVO 定制。MetaERP 字段字段定義本身帶類型/校驗/權限/索引提示/屬于哪個對象/哪個視圖可見是一等元數(shù)據(jù)。物理列由引擎決定要不要建、建哪張表頭表/明細表/維度行表。3. 科目與維度建模最典型差異EBS科目公司部門項目 → 拼成CCIDGL_CODE_COMBINATIONS寬表思維查得快但改維度動全局。MetaERP核算單元 / 自然科目 / 維度標簽三層解耦憑證頭分錄行維度行分表存JOIN 換靈活性。代價EBS 固定維度查詢/法定報表快MetaERP 靈活但簡單匯總要多表聚合靠引擎優(yōu)化。四、微服務 vs Oracle 的「存儲過程 / API」1. 存儲過程PL/SQL在 Oracle 體系里的位置EBS 大量邏輯在數(shù)據(jù)庫內校驗PL/SQL 包過賬觸發(fā)器 并發(fā)程序調用 PL/SQL接口先寫接口表 → 并發(fā)請求跑 PL/SQL 搬運強一致一個 Oracle DB 事務搞定跨模塊PO→AP→GLFusion 把一部分邏輯上移到應用層ADF/Service但核心財務/成本仍深度依賴 PL/SQL 與 Oracle DB 特性自治庫、ESS 作業(yè)。2. MetaERP 微服務怎么替代它對比點Oracle PL/SQL / 并發(fā)程序MetaERP 微服務邏輯位置數(shù)據(jù)庫內DB 是大腦服務內DB 只存數(shù)據(jù)GaussDB 分片跨模塊調用同一事務跨表 UPDATE服務 A 寫本地表 → 發(fā)事件 → 服務 B 消費一致性ACID 單庫事務Saga 最終一致 補償事務擴展方式改 PL/SQL 包、建并發(fā)請求加服務/加元數(shù)據(jù)/加事件處理器實時性批處理為主日結、月結事件驅動交易即記賬對外集成SOAP/REST API 是“出口”內部仍 PLSQL 主導API 是服務間原生協(xié)議無“內部 PLSQL 捷徑”多租戶單庫多 ORG_ID租戶級 Schema/分片物理隔離3. API 語義差異EBS API如AP_INVOICES_PKG.CREATE_INVOICE是 PL/SQL 包包裝外面套 ISG/SOA 轉 Web Service本質是“給存儲過程穿 HTTP 外衣”。Fusion APIREST/SOAP 是標準入口但底層仍走 Fusion 的 Entity/VO 層不能直接 DML 基表。MetaERP APIAPI 不是“暴露老邏輯”而是元數(shù)據(jù)引擎順手生成的——定義對象就有 API對象變 API 變服務邊界API 邊界。五、一張總表收口主題Oracle EBS / Fusion華為 MetaERP結構真理源物理表 代碼 彈性域配置元數(shù)據(jù)引擎Metadata as Source of Truth加字段/對象DDL 改 Form/PLSQL/并發(fā)改元數(shù)據(jù) → 引擎生成表/API/界面表字段含義靠段名/彈性域解釋CCID 寬表字段是自描述元數(shù)據(jù)維度解耦服務邊界模塊耦合同庫事務領域微服務獨立庫事件協(xié)作業(yè)務邏輯載體PL/SQL、觸發(fā)器、并發(fā)程序服務內領域代碼 元數(shù)據(jù)規(guī)則 事件處理器跨模塊一致性單庫 COMMIT/ROLLBACKSaga 補償、最終一致定制侵入性改核心表/存儲過程風險高租戶元數(shù)據(jù)層隔離內核不動實時記賬批量/月末業(yè)務事件→會計規(guī)則服務實時出憑證六、一句話類比好記EBSExcel 模板寫死列改列要改文件結構公式藏在 VBA 里所有表在一個工作簿。MetaERPNotion 數(shù)據(jù)庫——你改“屬性”配置后端表/視圖/表單/API 自動變每個團隊微服務有自己的子庫通過 webhook 聯(lián)動。