全部文档
文档中心财务模型概述财务模型的读写逻辑

财务模型的读写逻辑

先胜云平台的核心模块之一的多维计算引擎,具有一个重要的功能,即在从财务模型中读取数据的同时,实时的进行数据的多维汇总计算。多维汇总计算的逻辑会受到很多设置的影响。本节将一一阐述。

在创建财务数据模型的时候,对设置为维度类型的字段,需要先指定该字段的作用类型。字段的作用类型同维度类型完全相同,分为实体类、场景类、版本类、年份类、期间类、科目类和通用类。字段如果被指定了除通用类外的其他类,则只能关联到相关类型的维度上。如果被指定为通用类,则可以关联任何类型的维度。

当一个字段被设置为 通用类 / 科目类 时,不管其关联的维度是什么类型,在读取这个字段上的父级节点维度数据时,会自动将其下属的维度成员上的数据根据比重汇总起来作为父节点的数据。但有两种情况下,通用类字段的父级维度成员上的数据不是通过其下属汇总上来的,而是直接从表中读取的(即该数据是直接存储在汇总节点的维度成员上),一是数据的 Version 维度成员的 自上而下 的属性为 True,二是数据的 Account 维度成员的 在父级节点输入 的属性为 True,满足这两点的任意一点即可。

在从财务数据模型中读取数据时,关于数据是需要做自动汇总还是直接从数据表中读取,会遵从以下优先级规则:

  1. 如果数据的科目维度成员的数据类型是非数字类型,则直接从数据表中读取。

  2. 如果数据的版本维度成员的 自上而下 的属性为 True,或者数据的科目维度成员的 在父级节点输入 的属性为 True,则直接从数据表中读取。

  3. 如果数据的通用类和科目类字段上的成员是其维度结构中最底层的成员,则直接从数据表中读取。

  4. 如果数据的通用类或科目类字段上的成员是其维度结构中的父级节点,则通过其后代成员的比重进行逐级的汇总计算,得到该父级节点的数据。

需要注意的是,对科目维度的自动汇总,被设定为“在父级节点输入”的科目,不参与汇总。比如 A 科目下有两个子科目 A1 和 A2。当 A1 的“在父级节点输入”为 True 时,A 的值就等于 A2 乘以 A2 的比重,而不用考虑 A1。

在新建财务模型时可以启用 自动进行当期数和累计数的汇总计算 属性。

当财务模型启用了 自动进行当期数和累计数的汇总计算 属性后,模型中会自动添加一个虚拟的 View (视图)维度。该维度不会对应任何数据表上的字段,但针对开启了 自动进行当期数和累计数的汇总计算 属性的财务模型的任何取数逻辑都会需要用到该维度,比如搭建数据透视表,固定格式报表,或者通过 python 脚本做多维计算时,都会需要传入 View 维度的表达式,其用法同其他普通维度没有任何区别。

View 维度的成员分固定成员和非固定成员。固定成员是始终存在的,非固定成员是由 Period 维度开启了层级管理之后自动创建出来的。View 维度的成员同 Period 维度的层级基本是一一对应的关系。开启了对应的 Period 维度层级,就会创建出对应的 View 维度的成员。下表中展示了完整的 View 维度成员,以及同 Period 层级的对应关系:

View 维度成员

成员描述

固定/非固定成员

对应的Period维度层级

Beginning

年初数

固定

-

Opening

期初数

固定

-

Periodic

当期发生数

固定

-

YTD

年累计发生数

非固定

HYTD

半年累计发生数

非固定

半年

QTD

季度累计发生数

非固定

季度

MTD

月累计发生数

非固定

WTD

周累计发生数

非固定

DTD

日累计发生数

非固定

Closing

期末数

固定

启用了 自动进行当期数和累计数的汇总计算 属性后,财务模型的取值算法除了受维度类型和维度成员属性影响之外,还受到以下几个因素的影响:

  • 财务模型属性:资产负债类科目保存,损益类科目保存所选择的值(当期数,累计数)。

  • 科目属性:其中资产负债类的科目类型包括资产,负债,权益;损益类的科目类型包括费用,收入。

  • 所选择的 View 维度的成员。

具体的计算逻辑见下表:

科目类型

View 成员

保存为当期发生额

保存为期末余额/年累计额

资产负债类科目

Beginning

取 opening 期间上的数

取 opening 期间上的数

资产负债类科目

Opening

如果所选期间段内第一个最末级期间是当年的第一个期间,则取年初数。如果不是第一个,则等于年初数加上从年初到上一个最末级期间的当期数

如果所选期间段的第一个最末级期间是当年的第一个期间,则取年初数。如果不是第一个,则取上一个最末级期间的年累计数

资产负债类科目

YTD, HYTD, QTD, MTD, WTD, DTD

所选期间段内最后一个末级期间往前一直到该最末级期间所属的 View 层级的第一个末级期间的当期数的和

取所选期间段内最后一个末级期间的期末余额减去所属 View 层级的第一个末级期间上一个同级期间的期末余额

资产负债类科目

Periodic

所选期间段的所有最末级期间的当期发生额的总和

如果所选期间段内第一个最末级期间是当年的第一个期间,则直接取所选期间段内最后一个期间的期末余额减去年初数。如果不是,则取所选期间段内最后一个末级期间的期末余额减去所选期间段内第一个最末级期间的上一个同级期间的期末余额

资产负债类科目

Closing

等于年初数加上所选期间段内最后一个最末级期间之前的所有期间(包含最后一个期间)的当期数的总和

取所选期间段内最后一个最末级期间的期末余额

损益类科目

Beginning

0

0

损益类科目

Opening

0

0

损益类科目

YTD, HYTD, QTD, MTD, WTD, DTD

所选期间段内最后一个末级期间往前一直到该最末级期间所属的View层级的第一个末级期间的当期数的和

取所选期间段内最后一个末级期间的期末余额减去所属View层级的第一个末级期间上一个同级期间的期末余额

损益类科目

Periodic

所选期间段的所有最末级期间的当期发生额的总和

如果所选期间段内第一个最末级期间是当年的第一个期间,则直接取所选期间段内最后一个期间的期末余额减去年初数。如果不是,则取所选期间段内最后一个末级期间的期末余额减去所选期间段内第一个最末级期间的上一个同级期间的期末余额

损益类科目

Closing

0

0

回到顶部

咨询热线

400-821-9199

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

ctrl+Enter to send