第四篇:HFM产品的折算-中
上一篇我们讲了HFM系统默认的折算逻辑,这一篇我们讲自定义折算逻辑。
在HFM系统的建设过程中,系统默认折算逻辑是按照科目属性选择汇率进行折算,并且可配置是否使用PVA折算方法。那么如果是权益类目按照历史汇率折算或者对于关联了Movement科目的折算,要如何实现呢?这便是我们这一篇和下一篇要讲的所谓自定义折算逻辑,就是在系统标准折算逻辑基础上,我们通过Rules规则再定义的特殊的折算逻辑。
这篇我们先介绍关联了自定义维度Movement科目的系统折算实现方法。
其实我们这一篇所讲的特殊折算逻辑,在Oracle的关账合并云服务(FCCS)中,都已进行了标准化的定义。也就是说,通过这些年HFM系统的实施经验,很多合并过程中的计算折算逻辑都已经在FCCS中进行了固化,这就是所谓的最佳实践吧。所以学习了这一篇,基本上也了解了Oracle关账合并云的折算逻辑,虽不100%一样,但是理念与思路是一致的,再去看FCCS的时候,会更容易理解一点。
OK,言归正传吧。
1、HFM系统基础设置
(1)AppSetting的设置:
(2)Account的相关属性设置:
(3)自定义维度4-Movement的设置:
(4)Account和自定义维度Movement组合:
2、自定义折算逻辑介绍
(1)2016年12月,本位币人民币(EC),父级币种美元(PC)
ClosingRate= 6.00,AverageRate =6.50
(2)2017年1月,本位币人民币(EC),父级币种美元(PC)
ClosingRate= 6.50,AverageRate =6.70
注:EC=<Entity Currency>; PC=<Parent Currency>
3、HFM系统折算规则编写
示例:
说明1:
HS.EXP赋值函数的写法中,等号左边(目的值的维度)只可以指定科目(Account),自定义维度(Custom),关联方(ICP)和视图(View),如果想指定目的值放在某个值维度(Value)上,则需要使用条件。大家会发现上面示例中,对于Value条件的写法是不一样的,因为想指定Value是PC(Parent Currency)或者PCA(Parent Curr Adjs),需要使用固定函数Hs.Value.IsTransCur和Hs.Value.IsTransCurAdj。这两个函数只可在Sub Calculate()中使用。
说明2:
不是所有科目都会使用上述介绍的Movement折算方法进行折算,因此可以通过科目的UserDefined1-3属性定义表示进行区分,示例如是。