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