全部文档
文档中心财务模型概述财务模型的脚本计算

财务模型的脚本计算

财务模型核心模块之一的多维计算引擎,具有一个重要的功能,即在从财务模型中读取数据的同时,实时地进行数据的多维汇总计算。 关于MDX的详细内容,清参考 多维表达式MDX

1.1 先胜云MDX计算语法

MDX计算语句的实例如下:

以上计算语句,会用2022年每个月份的所有产品的销售量,乘以各产品设定在Begbalance期间成员上的单价,得到各个产品的销售额。

1.2 模型元素确定

我们使用use表示其后的计算语句会使用哪个财务模型元素进行计算。

在先胜云平台中,由于不同文件夹下的元素可以重名,因此如果不能确定应用中没有重名的财务模型,需要在调用MDX查询时,同步传入元素的路径信息,如:“cube_test=root_folder/test_folder/mdx_test/cube1.cub”。

确定了使用的财务模型后,在遇到下一个Use语句之前,所有的计算语句都会使用当前的财务模型作为计算的目标模型。

1.3 计算范围定义语句和计算公式

1.3.1 Scope成员限定

MDX计算语句通过 Scope……End Scope的组合对需要被计算的目标值进行限定,随后在限定的范围内,对指定的维度成员进行计算。

Scope中通过维度成员的组合对计算范围进行限定,由于在计算公式中,等号的左边最多只允许放一个维度成员,因此,Scope中维度的数量必须大于等于所使用的财务模型的维度数量-1。

例如,当前财务模型有7个维度,分别是Entity、Account、Scenario、Version、Year、Period和Product。

那计算脚本可以这样写:

从上面的例子可以看到,在Scope的参数中一共放了Entity、Scenario、Version、Year、Period和Product这六个维度,而缺失了Account维度,因此Account维度成员可以出现在下面的计算公式的等号左侧([Account].[Total_Sales])。

在计算语句中,要求公式的等号左侧的维度必须在等号右侧的每一个项目中都出现,因此等号右侧也出现了科目成员([Account].[Volume]和[Account].[Price])。

以上的例子也可以写成下面的形式:

同第一个例子不同的是,原本等号左侧的[Account].[Total_Sales] 被移动到了Scope参数内,因此,该财务模型所有的7个维度就在Scope参数中齐全了。这样,下面的计算公式中,等号左侧就不允许再放任何维度的成员了,而需要用This来表示当前范围内的每一个成员。

注意,在计算脚本中,Scope中的维度和计算公式中等号左侧的维度,必须囊括财务模型的所有维度,也就是不允许少提供任何维度,否则,财务模型计算接口需要返回错误信息,提示缺少维度,并不执行计算操作。

1.3.2 Scope嵌套

Scope语句可以做嵌套,如下例所示:

在该例中,先用一个Scope限制了Scenairo、Version、Year、Period和Entity成员的范围,随后在内部的第一个Scope中计算食品的销售额,然后在第二个Scope中计算饮料的销售额,两类产品的计算公式不完全一样。

MDX语句嵌套后,外层的Scope成员范围和内层的Scope成员范围,最终在计算的时候会取并集,如下:

如上例中,外层的Scope中已经有Version成员[V1],内层的Scope又分别设置了[V2]和[V3],因此在计算的时候,会对所有食品类的产品(第一个里层的Scope)使用[V1]和[V2],对所有饮料类的产品(第二个里内层的Scope)使用[V1]和[V3]。

一个Scope内的计算公式可以连续写多个,他们共用同样的Scope限定范围。

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send