1、综述
本文将针对HFM的抵消原理进行展开,从前台的操作及结果展示,到后台的数据存储原理的整个过程。
2、HS.CON定义说明
笔者在《第十二篇.最重要的合并函数Con介绍》专门介绍过HFM的抵消函数HS.CON。再将此函数的语法说明下:
要想将往来或者内部交易的抵消过程在合并工作底稿中清晰的展示出来,那么使用Nature参数变得非常必要。如下是一个常见用法:
可以看到,在参数nature处使用了“股权抵消”的标签。使用标签可以很好的呈现每笔抵消的来源。
3、合并工作底稿结果展示
当在“流程控制”菜单中执行完“全部合并”后,实际上就执行了规则中配置HS.CON函数,那么在合并工作底稿的抵消维度(Value=Elimination)层面就可以看到抵消的结果。通过“实体详细信息”就可以清晰的看到抵消的Value维度是如何逐级贡献数据的。
操作方式:在合并工作底稿的抵消金额上“右键”-“实体详细信息”
就可以看到“注释”列呈现了规则中配置的每种抵消的标签,如“股权抵消”:
4、抵消过程后台存储
当用户执行完合并时,系统会调用配置的规则,将数据写入后台进行存储。抵消的最终数据会存储到报告数据表DCN中:
同时由于我们在HS.CON函数的NATURE参数中填充了内容,所以HFM会同时将数据写入到RTS/RTD两种表中进行数据追溯。
1)RTS表:存储了抵消的数据来源维度组合,包括了value维度,要抵消的金额,抵消到目标维度的金额。比如下图中,DSRCDATA就是数据来源金额,DDESCDATA就是抵消的金额,可以看到是互为相反数的。
其中LSRCVALUE=6,可以根据这个数字去查询value主数据表,如下表是[Parent Total],说明抵消的数据来源是value =[Parent Total]
2)RTD表:存储了最终抵消的数据目标维度组合,包括了value维度。比如下图中,LDESVALUE=4,查询上面可以看到正是Elimination维度。验证了规则中配置的HS.CON的逻辑。
3)RTD和RTS表是通过LDESID进行关联的。将两表进行关联,可以得到一条完整的抵消数据,包括源的维度组合及要抵消的金额和要抵消到的目标组合。
5、说明
使用可生成 RTS/RTD 表分录的 Nature 参数会增加数据库大小,并且可能会影响合并性能。因为HS.CON函数也可以用在[Proportion]这个value维度。所以一般可能适合为 [Elimination]维度使用 HS.Con 分录增加标签,而不是为 [Proportion]增加标签,以减少 RTS/RTD 表分录数量。而且一般在[Proportion] 层面写规则的场景少之又少。
其实数据生成的原理和上篇介绍的日记账分录的存储原理类似,读者可以看下日记账分录的设计原理文章。
全文完。
本文首发于个人微信公众号:大话EPM,欢迎交流与合作。