SAP|SAP ECC 和 S4HANA Material 物料库存管理的模型比较

MATDOC 数据库表现在包含了 Material 物料数据的抬头信息和行项目数据。混合表(例如MARC、MARD等)仍然存在,但它们只保存主数据信息(Master Data)。在选择这些表期间显示的所有库存信息都是动态计算的。在动态计算库存数据时,使用 MATDOC_EXTRACT表的目的是为了加速 对 MATDOC 表的汇总。
SAP|SAP ECC 和 S4HANA Material 物料库存管理的模型比较
文章图片

注意,在 S/4HANA 里,MARD 这些表里包含的库存值,已经是动态计算后的结果,即来自主数据信息表 MARC 和其他库存相关表比如 NSDM_V_MARC 的动态计算结果。
【SAP|SAP ECC 和 S4HANA Material 物料库存管理的模型比较】像MARD这样的混合表仍然存在,并且仍然返回库存数据。然而,这些数字是使用新数据模型创建的 CDS view 视图动态计算的。这可以从SE16事务中MARD中select的SQL跟踪中看到:
SAP|SAP ECC 和 S4HANA Material 物料库存管理的模型比较
文章图片

CDS视图是一个用DDL(数据定义语言)SQL脚本编写的ABAP实体。在此范围内,它们用于将来自不同来源的数据聚合到单个根视图中。
使用 MB80 事务(由SAP Note 2542130提供)或 SAP ABAP Development Tool,可以检查指向ABAP Catalog 中 SE11 事物码创建的视图的DDL文件。例如,MARD 的 CDS 视图由以下元素组成:

  • 数据定义文件:NSDM_DDL_MARD
  • 字典视图:NSDM_V_MARD
  • 一个数据库实体(存在于数据库级别,仅由DDL引用):NSDM_E_MARD
我们用 ABAP Development Tool 在 S/4HANA 系统,打开 MARD,能看到一个 @AbapCatalog.replacementObject : 'nsdm_e_mard' 注解:
SAP|SAP ECC 和 S4HANA Material 物料库存管理的模型比较
文章图片

CDS 视图可以定义为数据库表的替代对象(replacement,有时也称代理对象),也可以定义为ABAP Dictionary中的经典数据库视图。在这种情况下,ABAP SQL 在读取一张数据库表时,读取操作会自动转而访问其通过注解定义的替换对象。
nsdm_e_mard 的源代码:
SAP|SAP ECC 和 S4HANA Material 物料库存管理的模型比较
文章图片

    推荐阅读