欢迎光临
我们一直在努力

华为没有公开 MetaERP 预算模块的“内部查询 SQL / 表名”,但按它元数据驱动 + 微服务 + 多维预算立方体的架构,预算主数据的“查询”通常不是直接查业务表,而是分四类入口:主数据查询

华为没有公开 MetaERP 预算模块的“内部查询 SQL / 表名”,但按它元数据驱动 + 微服务 + 多维预算立方体的架构,预算主数据的“查询”通常不是直接查业务表,而是分四类入口:

主数据查询 ≠ 预算余额查询

主数据:预算池 / 版本 / 维度 / 维度成员 / 控制规则

余额数据:预算数 / 承诺 / 占用 / 实际 / 可用额


一、总体查询分层

① 主数据服务查询(预算池、版本、维度、规则)
② 维度成员查询(项目、成本中心、渠道、产品线…)
③ 预算立方体查询(某维度组合有多少预算)
④ 执行/占用查询(Commitment / Obligation / Actual / Available)

MetaERP 里前两类是“主数据查询”,后两类是“预算数据/执行数据查询”。


二、预算主数据怎么查(核心)

1. 通过「预算主数据 / 元数据服务」查

云原生做法:不走 SELECT * FROM BUDGET_POOL,而是调主数据/配置服务。

逻辑接口形态(MetaERP 风格):

GET /api/budget/v1/pools?status=PUBLISHED&type=PROJECT
GET /api/budget/v1/versions?poolCode=PRJ_BUDGET_2026&status=PUBLISHED
GET /api/meta/v1/dimensions?object=BUDGET
GET /api/meta/v1/dim-members?dimension=PROJECT&keyword=PRJ
GET /api/budget/v1/control-rules?pool=PROJECT_BUDGET&project=PRJ-A001

返回的是:

  • 预算池定义
  • 版本状态(DRAFT / PUBLISHED / CLOSED)
  • 维度定义与层级
  • 控制规则(HARD / SOFT / ADVISORY、容差、超授审批人)

这类查询用于:

  • 配置界面
  • 主数据治理
  • 迁移校验
  • 控制规则审计

2. 通过「维度解析服务」反查“这张单据对应哪些主数据”

业务侧不是先查主数据再做事,而是:

PR / PO / 报销 / 合同
→ 解析出 Dim Key
→ 再查预算主数据是否覆盖该 Dim Key

例如 PR 行有:

project=PRJ-A001, cc=CC-ENG, account=680101, period=2026-09

系统会查:

  • PRJ-A001 是不是已注册项目维度成员
  • CC-ENG 是不是成本中心维度成员
  • 该组合在不在某个 PUBLISHED 预算版本里
  • 是否有对应控制规则

所以“主数据查询”常常是隐式发生在 Funds Check 里。


3. 通过「预算编制界面 / 低代码表单」查

用户视角:

  • 预算池列表
  • 版本对比(Baseline vs Rolling Forecast)
  • 维度树(集团 → BG → 区域 → 项目)
  • 控制规则明细

背后是:

主数据缓存 / 元数据缓存 / OLAP 立方体元数据

不是实时扫事务表,而是读已发布的主数据快照。


4. 通过「报表 / OLAP / 数仓」查

用于分析而不是控制:

预算池维度表
维度成员维表
版本维表
控制规则维表

再和预算事实表 join:

budget_fact.dim_key = dim_member.dim_key
and budget_fact.version_id = budget_version.version_id
and budget_version.status = 'PUBLISHED'

这类查询常见于:

  • 预算执行分析
  • 主数据血缘
  • 维度未覆盖清单
  • “有项目但没预算”的治理报表

三、预算主数据查询的 5 个关键过滤条件

不管走 API 还是报表,基本都绕不开这些:

过滤项

说明

poolCode / poolType

经营 / 资本 / 项目 / 渠道返点 / 战略专项

versionStatus

DRAFT / PUBLISHED / CLOSED / ARCHIVED

dimensionCode

PROJECT / COST_CENTER / CHANNEL / PRODUCT_LINE

memberStatus

ACTIVE / INACTIVE / PENDING

effectivePeriod

维度成员在哪段期间有效

只有 versionStatus = PUBLISHED 的预算主数据 + 预算数,才会参与 PR/PO 控制。


四、主数据查询 vs 余额查询(别混)

1. 查“有没有这个预算对象”

GET /api/budget/v1/pools/PRJ_BUDGET_2026
GET /api/meta/v1/dim-members?dimension=PROJECT&code=PRJ-A001

返回:

{
"poolCode": "PRJ_BUDGET_2026",
"type": "PROJECT",
"version": "2026_BASELINE",
"status": "PUBLISHED"
}

2. 查“这个对象还有多少钱”

POST /api/budget/v1/balance/query
{
"version": "2026_BASELINE",
"members": {
"ENTITY": "HuaweiCloud",
"PROJECT": "PRJ-A001",
"COST_CENTER": "CC-ENG",
"ACCOUNT": "680101",
"PERIOD": "2026-09"
}
}

返回:

{
"budget": 800000,
"committed": 200000,
"obligated": 100000,
"actual": 100000,
"available": 400000
}

前者是主数据查询,后者是预算执行/余额查询。


五、如果做迁移/治理,实际会怎么查

从 EBS / SAP / 金蝶 / 用友迁到 MetaERP 时,主数据查询通常用于:

1. 查维度成员是否齐全
PROJECT / WBS / COST_CENTER / CHANNEL 是否都在 MDM 中

2. 查预算池是否覆盖业务对象
PRJ-A001 有没有项目预算池版本

3. 查控制规则是否完整
项目+成本中心+科目 是否配置了 HARD/SOFT 规则

4. 查“孤儿单据”
有 PR 项目号,但主数据里没项目维度成员

5. 查版本状态
DRAFT 不控,PUBLISHED 才控

典型治理 SQL 思路:

SELECT pr.project_code
FROM pr_lines pr
LEFT JOIN dim_member proj
ON proj.dimension='PROJECT'
AND proj.member_code=pr.project_code
WHERE proj.member_code IS NULL;

——这就是“通过业务单据反查主数据缺口”。


六、一句话总结

MetaERP 预算主数据查询的本质:

不是查一张预算表,而是查“维度空间是否被定义、版本是否发布、规则是否覆盖”。

用户走界面,集成走 API,治理走元数据/数仓,控制时由单据解析器隐式查询。

赞(0)
未经允许不得转载:171主机测评 » 华为没有公开 MetaERP 预算模块的“内部查询 SQL / 表名”,但按它元数据驱动 + 微服务 + 多维预算立方体的架构,预算主数据的“查询”通常不是直接查业务表,而是分四类入口:主数据查询
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址