MDG 数据模型 Data Modeling
SAP MDG包含以下三大块数据模型:
- 物料主数据(Material Master)
- 业务合作伙伴(BP),客户(Customer)和供应商(Supplier)
- 财务(Financials)
需要注意的是,SAP MDG中的数据模型都是独立存在的,彼此没有任何交集,这也是我们在考虑是否需要新建Data Model时的重要依据。
SAP MDG包含两个存储区域:
- Staging Area
包含了在处理过程中的数据,与Change Request相关联,这些是MDG所独有的数据库表。 - Active Area
包含了已经处理好的数据,可以随时供其他系统和应用调用,例如大家熟悉的MARA、BUT000等主数据表。
在下面的部分,我们将数据建模的过程实施一遍,以便理解数据建模中的各个要素和相关配置点。
主数据的创建和修改
上图清晰的解释了主数据创建修改的大体流程以及Staging Area与Active Area在此过程中担当的角色。当Final Approval被处理之后,主数据记录从Staging Area中更新到Active Area。这个过程也被称为Activation。
根据部署方式的不同,这些Active Areas被分为Flex Mode和Reuse Active Area:
- Flex Mode
在这种模式下,当数据模型被定义后,一组新的数据库表被自动生成。当没有与之相对应的SAP ERP表,或因为某种需求,MDG表与ERP表必须做隔离时,我们可以采用该模式。当然,如果需要的话,数据可以随时复制到SAP ERP主数据表中。所有的SAP MDG FI主数据对象都是采用Flex Mode实施。 - Reuse Active Area
这种模式中,已存在的SAP ERP表被直接复用。Material Master和Business Partners主数据都是采用该模式实施,这就意味着当Change Request被激活(Activated)后,对应的SAP ERP主数据表也会被同步更新。
Entity Types
一个数据模型中不同类型的主数据以不同的Entity Type展现(从业务的层面分类)。
Entity Type最重要的属性,是Storage/Usage Type,决定了拥有Entity Type的Entities能否通过Change Request修改,不同Entity Type之间的从属关系,Entity所存储的信息类型,以及数据库表是否自动生成或复用。
Type 1:可通过Change Request修改;生成数据库表
这种类型为整个数据模型中的核心,与Change Request Types紧密联系。这些Entities具有持久性,SAP MDG会为其自动生成所有必要的数据库表,包括检查表、文本表和其他所需的表,例如存储附件。类似于Genil中的Root Object,这种Entity Type是所有Change Request的入口。Type 2:不能通过Change Request修改;生成检查表或文本表
只有检查表和文本表为此类型,修改时不会生成Change Request,可以分配给其他的Entity Type。Type 3:在MDG范畴内不能修改;没有生成数据库表
Type 4:可以通过其他的Entity Type修改;生成数据库表
这种类型类似于Genil Model中的依赖对象,依赖于Type 1所存在。必须使用Relationship与Type 1进行关联。
Entity Type的一些属性解释如下:
属性 | 解释 |
---|---|
Data Element | 决定了Entity Type的数据类型和长度。数据类型限制为CHAR、NUMC和CUKY,长度被限制为不超过45位。 |
Attachments | 如果选中,系统会自动提供附件的数据存储区域。只为Type 1服务。 |
Search Help | 如果在此处指定Search Help,系统将会忽略check table和domain中的fixed values |
Active Area | 指定了Active Area,系统就会将数据存在其中。Active Area可以在Data Model被指定,或在Entity Type层。如果在此处(Entity Type)指定了,则会覆盖Model层的Active Area。 |
Relationships
在多个Entity Type之间一共存在四种关系,分别为Referencing,Leading,Qualifying,Foreign key relationship。
下图简明的描述了几种关系之间的异同。