公司动态

MetaERP(元数据驱动+微服务)vs Oracle EBS / Fusion(物理表+PLSQL+API)

📅 2026/8/29 0:16:42
MetaERP(元数据驱动+微服务)vs Oracle EBS / Fusion(物理表+PLSQL+API)
一、华为 MetaERP 里的「元数据驱动」到底是什么元数据驱动Metadata-Driven不是“把字段配置放数据库里”这么简单而是把系统结构本身​ 当数据存。在 MetaERP 中元数据层描述业务对象采购订单、发票、凭证、物料字段名称、类型、是否必填、默认值、可见性对象关系一对一、一对多、级联校验规则、权限策略、审批流界面列表/表单/仪表盘怎么画映射到物理表的规则由迁移引擎生成真实表不是 EAV 万能值表运行时发生什么你在元数据引擎里定义“采购订单加一个 Project Reference 字段”→ 引擎自动在物理库生成/变更表列或通过动态 ORM 映射生成 CRUD API渲染前端表单校验挂接权限与审计不改 Java/Go 代码、不重启、不碰核心表结构。关键点元数据是“真理源”物理表是元数据的投影不是反过来。二、MetaERP 里的「微服务」是什么MetaERP 把传统 ERP 拆成领域服务采购服务自己库PO_HEADER / PO_LINE 等价物发票服务、付款服务、库存服务会计科目服务、规则引擎服务、主数据服务特征每个服务独立部署、独立 Schema/分库、K8s 容器化服务间不直连对方表只通过 RPC/REST 消息事件协作跨服务一致性用Saga 补偿事务不是单库 COMMIT业务动作发事件“发票已匹配 PO”→ 财务服务监听 → 实时记凭证对比单体EBS 里 PO 保存→触发器→AP 校验→GL 过账全在同一个 Oracle 库一个事务里MetaERP 里这是三个服务的本地事务 事件串联。三、元数据 vs Oracle EBS / Fusion 的「数据库表和字段」1. 表是谁定义的维度Oracle EBS / FusionMetaERP元数据驱动表结构来源人写 DDLPO_HEADERS_ALL、AP_INVOICES_ALL 是固化物理表元数据引擎代码生成/动态映射出物理表加字段建表/加列 DDL 改 Form 改并发程序 可能改 PLSQL在元数据里加一条 Field 记录引擎同步物理列表与业务对象关系业务对象≈物理表1:1 很重业务对象元数据定义物理表是其运行时投影​弹性域角色EBS 用 Key Flexfield 把多维度拼成 CCID 大宽表维度是独立元数据实体可插拔不拼字符串多租户扩展_ALL 表 ORG_ID 过滤定制易污染标准表租户元数据层叠加标准内核不动2. 字段语义差别EBS 字段SEGMENT1…SEGMENT30在 CCID 里代表公司/科目/部门含义靠弹性域配置解释物理上就是字符串段ATTRIBUTE1…15是预留自定义列类型死板。Fusion 字段比 EBS 封装深表高度抽象业务走 Service/VO/Entity Object但底层仍是预置物理模型扩展靠 EFFExtended Flexfield或 PVO 定制。MetaERP 字段字段定义本身带类型/校验/权限/索引提示/属于哪个对象/哪个视图可见是一等元数据。物理列由引擎决定要不要建、建哪张表头表/明细表/维度行表。3. 科目与维度建模最典型差异EBS科目公司部门项目 → 拼成CCIDGL_CODE_COMBINATIONS宽表思维查得快但改维度动全局。MetaERP核算单元 / 自然科目 / 维度标签三层解耦凭证头分录行维度行分表存JOIN 换灵活性。代价EBS 固定维度查询/法定报表快MetaERP 灵活但简单汇总要多表聚合靠引擎优化。四、微服务 vs Oracle 的「存储过程 / API」1. 存储过程PL/SQL在 Oracle 体系里的位置EBS 大量逻辑在数据库内校验PL/SQL 包过账触发器 并发程序调用 PL/SQL接口先写接口表 → 并发请求跑 PL/SQL 搬运强一致一个 Oracle DB 事务搞定跨模块PO→AP→GLFusion 把一部分逻辑上移到应用层ADF/Service但核心财务/成本仍深度依赖 PL/SQL 与 Oracle DB 特性自治库、ESS 作业。2. MetaERP 微服务怎么替代它对比点Oracle PL/SQL / 并发程序MetaERP 微服务逻辑位置数据库内DB 是大脑服务内DB 只存数据GaussDB 分片跨模块调用同一事务跨表 UPDATE服务 A 写本地表 → 发事件 → 服务 B 消费一致性ACID 单库事务Saga 最终一致 补偿事务扩展方式改 PL/SQL 包、建并发请求加服务/加元数据/加事件处理器实时性批处理为主日结、月结事件驱动交易即记账对外集成SOAP/REST API 是“出口”内部仍 PLSQL 主导API 是服务间原生协议无“内部 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 不是“暴露老逻辑”而是元数据引擎顺手生成的——定义对象就有 API对象变 API 变服务边界API 边界。五、一张总表收口主题Oracle EBS / Fusion华为 MetaERP结构真理源物理表 代码 弹性域配置元数据引擎Metadata as Source of Truth加字段/对象DDL 改 Form/PLSQL/并发改元数据 → 引擎生成表/API/界面表字段含义靠段名/弹性域解释CCID 宽表字段是自描述元数据维度解耦服务边界模块耦合同库事务领域微服务独立库事件协作业务逻辑载体PL/SQL、触发器、并发程序服务内领域代码 元数据规则 事件处理器跨模块一致性单库 COMMIT/ROLLBACKSaga 补偿、最终一致定制侵入性改核心表/存储过程风险高租户元数据层隔离内核不动实时记账批量/月末业务事件→会计规则服务实时出凭证六、一句话类比好记EBSExcel 模板写死列改列要改文件结构公式藏在 VBA 里所有表在一个工作簿。MetaERPNotion 数据库——你改“属性”配置后端表/视图/表单/API 自动变每个团队微服务有自己的子库通过 webhook 联动。