2. S/4HANA核心数据模型

S/4HANA 的财务业务一体化,并不是把 FI 与 CO 简单拼在一起,而是把过去分散在多张汇总表、多个子分类账中的数据结构,重构为以统一日记账(Universal Journal,表 ACDOCA)为单一事实来源的模型。理解这一模型,关键不是记住表名,而是看清六类核心对象之间的“谁引用谁、谁汇总谁、谁约束谁”。

一、统一日记账:唯一的记账事实层

在经典 ECC 中,总账余额存在 GLT0,成本要素存在 COEP,资产折旧存在 ANLC,物料分类账存在 MLIT,同一笔业务被拆成多行、写入多张表,对账困难。S/4HANA 把这些行项目合并进 ACDOCA:一行记录同时携带会计科目、成本要素、成本中心、利润中心、功能范围、段、内部订单、WBS、资产、物料、数量、金额、币种等字段。也就是说,ACDOCA 既是总账的行项目表,也是管理会计、资产会计、物料分类账的行项目表。

ACDOCA 的关键字段可以按“四组”理解:

  • 凭证标识组:RLDNR(分类账)、RBUKRS(公司代码)、GJAHR(会计年度)、BELNR(凭证号)、DOCLN(行号)——这五个字段构成行项目唯一键。
  • 科目与对象组:RACCT(总账科目)、KOSTL(成本中心)、PRCTR(利润中心)、SEGMENT(段)、AUFNR(订单)、PS_POSID(WBS)、ANLN1(资产)。
  • 金额与数量组:HSL(本位币金额)、WSL(集团货币)、KSL(第二本位币)、MENGE(数量)、MEINS(单位)。
  • 来源与状态组:AWTYP(来源业务类型,如 BKPF、MKPF、VBRK)、AWKEY(来源单据键)、BSTAT(凭证状态)、TIMESTAMP。

其中 AWTYP + AWKEY 是“财务追溯业务”的钩子:从任意一行 ACDOCA 出发,都能反查到采购订单、物料凭证、发票或生产订单。这正是业务一体化在数据层面的落点。

二、会计凭证:ACDOCA 的抬头与行项目

ACDOCA 存的是行项目,凭证抬头仍保留在 BKPF 中,行项目文本、税码等补充信息在 BSEG 中。三者的关系是:BKPF 1 : N BSEG,BKPF 1 : N ACDOCA,且 ACDOCA 与 BSEG 通过 RLDNR/RBUKRS/GJAHR/BELNR/BUZEI 关联。因此“会计凭证”在 S/4HANA 中是一个跨表概念:抬头管控制信息(凭证类型、过账日期、参考号、公司代码),行项目管金额与科目,ACDOCA 管可分析维度。

凭证类型(如 SA 总账、KR 供应商发票、DR 客户发票、KZ 供应商付款、WE 收货、RV 开票)决定了号码范围、字段状态和过账码,是业务事件进入财务的“入口分类”。

三、总账、业务伙伴、物料主数据与财务主数据

总账科目主数据(SKA1 科目表级 / SKB1 公司代码级)决定科目是否统驭、是否只能自动记账、是否按成本要素管理。业务伙伴(BP)是 S/4HANA 中客户与供应商的统一入口,通过角色(FLCU00 客户财务、FLVN00 供应商财务等)挂接公司代码视图,并映射到旧的 KNA1/LFA1。物料主数据(MARA 通用、MARC 工厂、MBEW 评估、MARD 库存)中的评估类( Valuation Class)与移动类型一起,决定收货、发票时自动生成的会计科目。

财务主数据还包括成本中心、利润中心、功能范围、内部订单、WBS、资产主数据等,它们不是“科目”,而是 ACDOCA 行项目上的分析维度。业务伙伴和物料主数据则属于“业务对象”,它们通过配置表(如 OBYC 自动记账、VKOA 收入科目确定)与财务科目建立映射。

四、六类对象的关系全景

下面这张图把六类对象放在同一张关系网中:业务伙伴与物料主数据是业务事件的参与者与标的,会计凭证是事件的财务表达,ACDOCA 是行项目的统一存储,总账科目与财务主数据是行项目上的分类维度,最终汇总为报表与余额。

S/4HANA 核心数据模型关系图 业务伙伴 BP 客户 / 供应商 / 角色 物料主数据 MARA / MARC / MBEW 会计凭证 BKPF 抬头 1 : N BSEG 行项目 凭证类型 SA / KR / DR / WE / RV 统一日记账 ACDOCA RLDNR + RBUKRS + GJAHR + BELNR + DOCLN 金额 / 数量 / 科目 / 成本对象 / 来源单据 总账科目主数据 SKA1 / SKB1 财务主数据 成本中心 / 利润中心 / 资产 报表与余额 FAGLFLEXT / 分析视图 参与方 标的物 过账生成行项目 科目约束 维度归属 汇总输出 AWTYP + AWKEY 反查业务单据

五、从一笔采购到一张报表:数据如何流动

以“采购收货 + 发票校验”为例,可以看清各对象的协作方式。假设采购订单 4500000123 采购原材料 100 件,单价 10 元,工厂 1000,供应商 BP 为 100234。

  1. 收货(MIGO,移动类型 101):系统读取物料主数据 MBEW 中的评估类(如 3000),通过 OBYC 的 BSX 事务键确定库存科目 140000,通过 WRX 确定 GR/IR 科目 210000。生成物料凭证 4900000456,同时写入 ACDOCA:借 140000 库存 1000 元,贷 210000 GR/IR 1000 元,AWTYP=MKPF,AWKEY=4900000456。
  2. 发票校验(MIRO):输入采购订单与供应商 BP,系统读取 BP 的公司代码视图确定统驭科目 220000,通过 WRX 冲销 GR/IR。生成会计凭证 5100000789,ACDOCA 中借 210000 GR/IR 1000 元、借 222100 进项税 130 元,贷 220000 应付账款 1130 元,AWTYP=MKPF 或 RSEG,AWKEY 指向发票。
  3. 付款(F110):借 220000 应付账款,贷 100200 银行存款,ACDOCA 中记录清账关系与现金流方向。

整个过程结束后,查询 FS10N 科目余额时,系统直接从 ACDOCA 聚合,不再依赖 GLT0;查询成本中心费用时,同样从 ACDOCA 按 KOSTL 聚合,不再依赖 COEP。这就是“一套数据、多个视图”的含义。

六、建模时必须守住的四条关系

关系约束内容检查方式
BP ↔ 统驭科目客户/供应商的公司代码视图必须绑定统驭科目,且该科目在 SKB1 中标记为统驭科目BP 事务码角色页签;FS00 科目“统驭科目”标识
物料 ↔ 评估类 ↔ 科目MBEW 评估类 + 移动类型,经 OBYC 映射到库存、GR/IR、差异科目MM03 会计视图 1;OBYC 事务键 BSX/WRX/PRD
凭证 ↔ ACDOCA每张过账凭证必须在 ACDOCA 生成行项目,借贷平衡,分类账 RLDNR 一致FB03 凭证流;SE16H 查 ACDOCA 按 BELNR
行项目 ↔ 分析维度成本中心、利润中心、段等维度必须来自有效主数据,且与科目属性兼容KS03 / KE53 主数据状态;ACDOCA 字段非空校验
建模顺序建议:先建总账科目与财务主数据(成本中心、利润中心),再建业务伙伴与物料主数据,最后配置自动记账(OBYC、VKOA)。顺序颠倒会导致过账时找不到科目或维度,产生“科目确定失败”错误。
常见误区:把 ACDOCA 当成“又一张总账表”而继续维护 GLT0 思维;或在 BP 中只建客户角色、不建公司代码角色,导致发票过账时无法确定统驭科目。S/4HANA 中 BP 是唯一入口,KNA1/LFA1 只作为兼容视图存在。