设计多维数据模型,要从数据模型需要保存的数据结构及要实现的预算管理功能两方面人手。通过对预算表单的分析,可以比较直接地得到预算管理上对数据模型的要求。另一方面,SAP计划与合并系统基于对计划预算和报表合并常用功能的分析与归纳,对数据模型进行了分类,并对每一类数据模型在建模上作了规范和要求。下面就先从分析表单人手,了解多维数据模型的设计思路。
3.3.1.1 分析表单,设计模型
对于同一个主题的预算,例如销售预算,不论其录入表单或报表的格式是怎样的,其后台存储和读取的一般都采用同一个多维数据模型。这样才能保证数据的统一性。因此,同一主题的预算相关的表单,往往是分析形成同一个数据模型的基础。
仍然以3.2.1.1小节的销售预算表单为例,介绍预算模型的设计。首先分析同一预算主题的相关表单使用的维度及其成员构成。图3-8所示的年度目标录入表单使用到的维度有版本、预算主体、时间、预算科目,图3-9所示的销售数量预算表单用到的维度有版本、预算主体、预算科目、时间、产品线,图3-10所示的表单用到的维度有版本、预算主体、时间、产品线、预算科目。不同的表单由于编制阶段及功能不一样,使用的维度及其成员的明细程度不尽相同,但是仍然有大部分的维度是一样的。再者,考虑到这些不同的表单的数据关系比较紧密,年度预算目标数据需要落到具体的销售金额的预算,而每个实体的销售金额预算是由销售数量和销售单价计算得到的。
基于以上因素考虑,根据收入预算编制的需要,创建一个统一的销售预算模型,包含以上5个维度及其他必要的维度,以保存和处理销售预算相关的数据。在预算演示环境场景中,以上表单正是使用了同一个数据模型,如图3-20所示。
图3-20 预算示例场景的数据模型
示例模型中包含了以上表单中的6个维度:
(1)ACCOUNTP(预算科目),科目类型维度。
(2)AUDITP(审计线索维度),可以用于区分不同来源的数据,保存数据的变化过程。
(3)CATEGORY(版本),类别类型维度。
(4)ENTITY(预算主体),实体类型维度。
(5)PRODUCT(产品),用户定义类型维度。
(6)TIME(时间),时间类型维度。
(7)CURRENCY(币种),币种类型维度,用于保存预算数据使用的货币币种。
模型的设计要充分考虑供不同的表单共用,使用一个数据模型满足多个报表或者录入表单的需求。同时,还要考虑相关表单的数据关系,对于关系不大的数据,我们考虑将其分成不同的数据模型。例如,示例场景中包括了人力资源、资本支出预算,这些预算使用了岗位、员工、资产类型等维度,由于这些数据与销售数据在结构上不相似,在内容上相关性不大,所以分别使用独立的数据模型,只是这些模型都使用了相同的实体、时间、类别(版本)等维度,不同类型的预算数据通过这些共同的维度实现横向的数据关联和分析。
根据报表需求或者预算录入表单的格式分析出模型的方法,与商务智能项目中根据报表需求进行多维数据建模的方法是类似的。读者可以参见《SAP商务智能完全解决方案》-书第5章中关于BW建模方法的介绍。需要注意的是,预算系统的建模有以下两个很重要的不同点:
1)预算模型的数据大多是汇总过的实际数据或者手工录入的预算数据,数据量相对较小。
2)相对于报表系统而言,不同的预算模型之间存在数据的交互和互相校验。
基于以上原因,可以考虑简化预算模型,对一些数据量小、数据交互多、维度近似的模型进行合并,而不像报表分析模型那样进行严格区分。换句话说,预算模型可以是更加稀疏的。
3.3.1.2 在系统中创建模型
在完成模型设计后,需要在系统中将其实现。管理员界面的模型管理视图,如图3-21所示。
图3-21 数据模型管理界面
模型管理界面列出了系统当前环境中现有的所有数据模型,管理员可以在这一界面中创建、编辑、删除、复制数据模型,或者对数据模型进行优化。以新建数据模型为例,单击模型列表上方的“新建”按钮,可以进入新建模型向导,系统弹出如图3-22所示的向导界面。
图3-22 新建数据模型向导界面
在对话框中输入新建模型的标识与描述,并单击“下一步”按钮。
3.3.1.3 选择模型类型
模型创建向导的第二个界面如图3-23所示。
图3-23 选择数据模型类型
在图3-23所示的界面中,管理员需要指定数据模型的类型。在本例中,选择标准类型。
在选项部分,需要指明数据输入模式,其有以下两个选项。
●PER-定期:即在数据模型数据库中存储的是期间数。(www.daowen.com)
●YTD-年初至今:即在数据模型数据库中存储的是从年初至今的累计数。
这一选项只对期间数(如损益类科目)有影响,对于时点数(如资产负债表科目)不管哪个选项,其存储的值是一样的。关于科目类型的指定,参见3.2.3.2节对科目维度的详细介绍。
使用期间数或者累计数进行存储的示例如表3-2所示。
表3-2 使用期间数或者累计数存储损益类科目
由于大部分总账及其他源系统在处理损益类科目时都以期间的方式存储数据,默认的数据模型存储方式也是以期间数存储的。使用这一存储方式,所有的计算都以期间值为基础。将期间值进行累计,可以形成累计值报告。在一些业务场景中,计算需要以累计值为基础进行计算,如进行外币转换的应用。如果需要累计值,用户可以在这里将模型选项设置成以累计值的方式存储数据,这样用户可以直接输入累计值。当数据以累计值的方式录入,但其出具的报表需要期间值时,系统也会根据不同期间累计值的差异自动计算得出。期间值存储与年度累计值存储方式都可以支持每日、每周、每月、每季度以及年度累计值的报表需求。
不同类型的数据模型在结构和功能上都有差异,而且选择不同的模型类型会有不同的选项,具体参见3.3.2节关于模型类型的专题介绍。
3.3.1.4 分配模型维度
单击“下一步”按钮,进入如图3-24所示的界面。
图3-24 选择源数据模型进行复制
界面中列出了当前环境中已有的数据模型,用户可以选择空白模型,自己指定新建模型的结构,也可以选择现有模型,以现有的一个模型为模板,复制现有模型的维度,并在其基础上进行修改得到新的模型。
选中“空白模型”单选按钮,并单击“下一步”按钮,进入维度分配界面,如图3-25所示。
图3-25 选择数据模型维度
在界面左方的列表中,列出了系统当前环境中已创建的所有维及其类型。下方是系统的提示,根据前面步骤选择的模型类型,系统会进行相应的提示。我们之前选择的是“标准”类型的模型,标准模型必须至少包含以下4个维度:
●科目A。
●类别C。
●实体-E。
●时间-T。
其他类型模型所要求的维度可以参见3.3.2节的模型类型专题介绍。
在左边的列表中选择需要的维度,并单击“添加”按钮,可以将其添加到右边的列表中。将维度分配给模型后,维度中的成员数据在模型中就可以使用了。在右边的列表中,除了维度名称和类型外,还有一列“安全的”,它用于标明维度是不是与权限管理相关。系统对数据访问权限的控制是不同的模型设计的,所以用户在设计模型时可以同时指明模型中的哪些维度是与访问权限相关的。在随后的权限管理中,管理员就可以根据这些维度及其成员来分配用户的访问权限。
指定模型中的部分维度为“安全的”,管理员可以使用这些维度来控制一个用户(或者团队)是否有读取或写入这些维度及其成员的权限。例如,管理员希望不同的用户访问不同实体的数据,就需要将实体维度选择成“安全的”。对于没有标识为权限相关的维度,所有用户都可以访问这些维度的成员。
系统使用数据访问配置文件对用户进行访问授权。如果管理员想对一个模型的数据访问权限进行控制,则模型中至少需要有一个维度是与权限相关的。SAP计划与合并系统的权限管理可以细化到每一个维度成员。在数据访问配置文件中,管理员需要指定用户对于维度的哪些成员拥有只读或者写入的权限。因为默认情况下,用户没有访问任何权限相关的维度成员,所以在数据访问配置文件中定义权限相关维度的成员访问权限时,要确保模型中与权限相关的所有维度的权限都得到了分配。否则,只要有其中一个维度没有进行权限分配,则分配到这一数据访问配置文件的用户将不能访问模型中的任何数据。更多的细节请参见第14章对权限管理的介绍。
3.3.1.5 完成数据模型创建
单击“下一步”按钮,进入“从源复制”步骤。如果在“源模型”步骤中选择了一个源模型做为模板,系统会根据在“维度”步骤中修改后的结构判断源模型的哪些内容可以复制到新的模型。一般可以复制源模型的流水账模板和数据管理器包,如图3-26所示。
图3-26 从源数据模型复制的内容
由于在“源模型”步骤中没有选择源模型,所以这一步骤也没有相应的选项。系统提示“将不向新模型复制内容,因为是从空白模型开始的”。
单击“下一步”按钮进入最后界面,系统将模型配置的信息进行小结,供用户进行检查,如图3-27所示。
图3-27 审核并创建新模型
检查正确后,单击“创建”按钮,即可完成模型的创建。
完成创建的模型会出现在如图3-21所示的模型列表中。在系统的模型管理界面,管理员还可以对模型进行编辑修改、复制和删除。在模型创建之初,数据量是比较小的。但随着时间的推移,数据量随之增长。用户可以定期地运行优化功能,以优化模型数据存储,提高模型性能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。