
MetaERP 里预算表和财务分析系统的对接不是“把预算表同步给 BI”这么简单而是把“预算立方体 承诺/义务/实际流水 SLA 派生的 COA 上下文 总账/子账实际”在统一语义层上拼成一张“经营事实网”。可以分成5 层对接主数据对齐 → 预算数据出域 → 实际数据出域 → 分析层建模 → 服务/推送层。一、先立一个核心认知MetaERP 的预算表本身存的是授权额度Budget / Revision / Transfer存的是占用状态Commitment / Obligation / Actual / Reservation不直接等于财务报表里的“实际发生额”所以和财务分析系统对接时要对接的不只是“预算金额”而是预算金额 承诺金额PR 义务金额PO 实际金额AP/GR/报销/工时/日记账 可用余额 滚动预测 维度上下文项目/WBS/成本中心/利润中心/产品/客户预算系统管“还能花多少”财务分析系统管“为什么花了、花得值不值”。二、对接总体架构MetaERP 内部 ├─ 预算模块budget_amount / consumption / balance / rule ├─ 采购/项目/资产/费用PR/PO/AP/GR/Timesheet/Project Cost ├─ SLA 子账引擎业务事件 → 完整 COA公司.利润中心.成本中心.科目.项目段 ├─ 总账 GL法定/管理/税务账簿 └─ 预算控制引擎Funds Check / Reservation ↓ API / CDC / 消息 / ETL ------------------------------------------- 企业数据平台 / 湖仓 / 指标平台 ├─ 维度主数据层 ├─ 预算事实层 ├─ 实际事实层 ├─ 占用事实层 ├─ 预测事实层 └─ 语义层指标/口径/KPI ↓ 财务分析系统 / BI / FPA / 经营驾驶舱 / AI 归因三、第 1 层主数据对齐最重要最容易被低估预算表和财务分析对不上的根因90% 是主数据不一致。必须统一的维度维度预算侧财务分析侧对齐方式公司ledger/legal entityGL 公司段主数据映射表成本中心budget dimensionGL/SLA 成本中心段CCID 映射利润中心项目派生管理报表主体SLA Mapping Set项目/WBSproject budget项目成本/收入Project_IDTask_ID科目budget account自然科目/管理科目COA crosswalk产品/客户业务维度营收维度主数据平台期间fiscal periodGL 期间会计日历统一版本Original/Revision/Rolling场景 Scenarioversion dictionary华为做法项目上下文通过SLA 账户规则派生利润中心段预算账户和控制预算结构用同一套 COA 段子集主数据由 MDM / 元数据平台统一下发不让预算系统和 BI 各存一份四、第 2 层预算数据怎么出 MetaERP1. 预算授权数据静态/低频来自budget_amountbudget_versionbudget_transferbudget_reservation同步方式版本发布后推一次调剂/追加走事件触发通常近实时 / 5 分钟 / 小时级 即可出口形态budget_fact: org_key, project_key, wbs_key, acct_key, budget_type, period_key, version_key, currency, budget_amount, revision_amount, transfer_in, transfer_out2. 预算占用数据高频来自budget_consumptionbudget_balance动作PR 提交 → commitmentPO 创建 → obligation发票/报销 → actual取消/退单 → release同步方式消息队列 / CDC / 事务事件财务分析系统如果需要“实时可用余额”就要消费占用事件流如果只做月报可以只拉余额快照五、第 3 层实际数据怎么和预算对齐实际数据不是从“预算模块”来而是从SLA → 子账 → 总账 项目成本累计表 采购承诺表 AP 发票 费用报销 人力资源工时/人工成本关键映射键公司 利润中心 成本中心 自然科目 项目 WBS 期间项目侧常见模式预算PA_BUDGET_LINES / project budget lines实际expenditure items / project cost两者不是外键关系而是在累加层accumulators 按PROJECT TASK RESOURCE PERIOD对齐所以分析层要做budget_fact FULL OUTER JOIN actual_fact ON org_keyorg_key AND project_keyproject_key AND wbs_keywbs_key AND acct_keyacct_key AND period_keyperiod_key AND scenario_keyscenario_key六、第 4 层财务分析系统的数据模型企业级数仓里通常会建 3 类事实表1. 预算事实表fact_budget - budget_amount - revision_amount - forecast_amount - transfer_amount2. 占用事实表fact_encumbrance - commitment - obligation - reservation - release3. 实际事实表fact_actual - gl_actual - project_cost - procurement_spend - hr_labor_cost - revenue再配一张经营指标事实fact_budget_performance budget / commitment / obligation / actual / available / variance / variance_pct / burn_rate / forecast_at_completion星型模型dim_org dim_cost_center dim_profit_center dim_project dim_wbs dim_account dim_product dim_customer dim_period dim_version -- Original / Rev1 / Rolling / Forecast dim_budget_type七、第 5 层指标/语义层真正让“对接”成立的地方BI 不直接写 SQL 乱查而是定义统一指标可用预算 预算金额 - 承诺 - 义务 - 实际 - 预留 执行率 实际 / 预算 燃烧率 (实际 义务) / 预算 偏差额 实际 - 预算 偏差率 (实际 - 预算) / 预算 预计期末 当前实际 剩余期间线性/模型预测华为式经营分析会把指标分成控制指标可用资金、是否超预算、是否需审批执行指标执行率、燃烧率、承诺转化率经营指标毛利率、费用率、研发投入产出、项目 ROI预测指标滚动预测、完工估算、现金流影响财务分析系统读的是“语义层”不是原始表。八、对接方式API / CDC / ETL 怎么选数据方式频次主数据MDM 推送 / API变更即推预算版本API / 批处理发布时预算调剂事件消息实时占用流水CDC / Kafka近实时总账实际ETL / CDC日终或准实时项目成本API / ETL小时级滚动预测文件/API月/周经营指标语义层计算查询时MetaERP 云原生背景下倾向交易事件走消息流主数据和维度走元数据平台分析和报表走湖仓 语义层不鼓励 BI 直接连生产库跑大查询九、一个典型“预算 vs 实际”分析查询逻辑SELECT d.org, p.project_name, w.wbs_name, a.period, COALESCE(b.budget_amount,0) AS budget, COALESCE(e.commitment,0) AS commitment, COALESCE(e.obligation,0) AS obligation, COALESCE(ac.actual,0) AS actual, COALESCE(b.budget_amount,0) - COALESCE(e.commitment,0) - COALESCE(e.obligation,0) - COALESCE(ac.actual,0) AS available, COALESCE(ac.actual,0) - COALESCE(b.budget_amount,0) AS variance FROM fact_budget b LEFT JOIN fact_encumbrance e ON b.budget_key e.budget_key LEFT JOIN fact_actual ac ON b.budget_key ac.budget_key JOIN dim_org d ON ... JOIN dim_project p ON ... JOIN dim_period a ON ...注意预算按“控制键”聚合实际按“COA 项目上下文”聚合两边先在维度表里对齐再在事实层 join十、企业项目预算 vs 企业组织预算的“双视角对接”财务分析系统常要两种报告1. 项目视角项目 / WBS / 资源类型 / 阶段 预算 / 承诺 / 实际 / EAC / 毛利来源项目预算 项目成本累计2. 组织视角公司 / 利润中心 / 成本中心 / 科目 预算 / 占用 / 实际 / 费用率来源控制预算余额 GL/SLA 实际桥接键通常是项目段 利润中心段 成本中心段也就是项目预算通过 SLA 派生出组织维度组织预算通过项目段反查业务含义。十一、常见坑华为式实施里一定会遇到预算粒度 ≠ 总账粒度预算按“成本中心项目资源类型”总账按“科目CCID”不建映射层就会对不上。承诺/义务不算进实际财务分析只拉 GL 实际会以为“钱还没花”但 PO 已经占死预算。版本混用Original / Revision / Rolling / Forecast 不分 Scenario偏差分析全错。项目预算和成本中心预算各算各的项目经理说没超成本中心经理说超了因为没有双控视图。关账后还改预算预算期间和 GL 会计期要解耦但分析系统必须知道“哪笔是期初迁移/跨年承付”。BI 直接连预算表预算表是控制对象不是分析对象应消费“预算快照/余额物化表”。十二、一句话总结对接本质MetaERP 预算模块和财务分析系统的对接不是“预算表同步给 BI”而是把“预算授权、业务占用、会计实际、项目成本、滚动预测”统一到同一套维度和语义层让预算 vs 实际 vs 承诺 vs 预测在同一行里可比。