SAP ERP 6.0 库存管理数据模型由两个文档表 MKPF(用于文档抬头信息)和 MSEG(用于文档项目数据)组成。 此外,在多个表中存储了汇总的实际库存数量数据。 其中一些表还存储物料主数据属性,例如 MARC、MARD 和 MCHB 表。 此类具有物料主数据属性以及实际库存数量的数据库表,在本文余下部分称为混合表(Hybrid Table)。 相比之下,还有像 MSSA 这样的表格,仅包含销售订单库存的汇总实际库存数量。 此类表将在本文以下部分称为替换聚合表。
SAP S/4HANA Material Management 库存模块中的混合表,维护了冗余的数据,因为所有物料单据信息的总和可以返回相同的数据。 例如,在 MARD-LABST 中显示的无限制使用库存数量,现在是所有与所选数据相关的 Material Document 的总和,每当在 MARD 中查询 LABST 字段时,在 S/4HANA 里会通过使用 NSDM_V_MARD 视图计算。
如果不需要这些表中的库存信息,则可以将只获取主数据信息的 SELECT 与为此创建的特殊视图 V_Mxxx_MD 一起使用(例如 V_MARD_MD)。
总之,SELECT * FROM MARD 现在执行以下步骤:
- 访问 MARD 获取存储位置物料主数据实体。
- 对表 MATDOC_EXTRACT 执行聚合以获取实际库存水平。
- 将以上两个结果进行汇总。
NSDM_V_MARD 的建模明细:
上图 DDL Source NSDM_DDL_MARD 的模型明细:
MATDOC_EXTRACT
MATDOC_EXTRACT 表是一个压缩的 MATDOC 表,用于在获取动态计算的数据时提高性能。
记录在插入 MATDOC 的同时插入 MATDOC_EXTRACT,并且在MMPV 事务中的期间关闭时自动执行预压缩过程。 此预压缩过程减少了 MATDOC_EXTRACT 表中的数据,仅保留计算库存数据所需的信息。
也可以使用 NSDM_MTDCSA_PRECOMP 程序手动启动预压缩。