33.合并抵消

360影视 动漫周边 2025-09-01 17:23 1

摘要:上篇文章介绍了折算规则中常用的Trans函数,以及通过计算规则实现折算的目的。本篇主要介绍合并过程中常用的CON函数。在HFM系统中的CON函数是一个非常重要的合并函数,主要用于处理公司间往来和交易的抵消。

上篇文章介绍了折算规则中常用的Trans函数,以及通过计算规则实现折算的目的。本篇主要介绍合并过程中常用的CON函数。在HFM系统中的CON函数是一个非常重要的合并函数,主要用于处理公司间往来和交易的抵消。

CON函数可以将数据放置到Value维度的[Proportion]和[Elimination]成员中。它通常在合并规则中使用。函数的基本语法如下:

HS.Con ("DestPOV", "Factor", "Nature")

使用CON函数进行抵消前,需要进行以下设置:打开运行Consolidate例程的开关,即设置ConsolidationRules=Y,在规则中编写合并例程。

当用户执行合并操作时,系统会调用配置的规则,将数据写入后台进行存储。抵消的最终数据会存储在RTS/RTD表中。

在执行完“全部合并”后,可以在合并工作底稿的抵消维度(Value=Elimination)层面看到抵消的结果。通过“实体详细信息”可以清晰地看到抵消的Value维度是如何逐级贡献数据的。

Y公司对Z公司应收账款7000元人民币;

Z公司对Y公司应付账款1000元美元;期末汇率1USD = 7CNY抵消前:

通过即席和内部往来人民币对账报告,可以看出来一方有应收,一方有应付

从合并抵消流程上看,跑完合并之后,数据只停留在Parent Total维度上,根据CON的定义,所以我们应该先把[Parent Total]上的数据原封不动的抵消到[Proportion],形成抵消前数据,然后再把数据抵消到[Elimination]形成抵消数据。

抵消三个条件:ICP要是非[ICP None];科目要是ISICP为Y,PlugAcct要有组;同一个父级下面。抵消规则:抵消结果

此时查看合并层数据,也符合我们前面文章中所说的合并逻辑

为了增强代码可读性,以及代码简化,我们仍然可以像折算逻辑中定义自定义函数,来优化抵消代码,如下所示:

查询SQLSELECTrts.lSrcYear,acct_desc.Description AS AccountDescription,entity_desc.Description AS EntityDescription,icp_desc.Description AS ICPDescription,value_item.Label AS ValueItemLabel,rts.dDesData,rts.dSrcData,rts.sNatureFROMHFMTEST_RTD_1_2023 rtdINNER JOIN HFMTEST_ACCOUNT_DESC acct_desc ON rtd.lDesAccount = acct_desc.ItemIDINNER JOIN HFMTEST_ENTITY_DESC entity_desc ON rtd.lCurEntity = entity_desc.ItemIDINNER JOIN HFMTEST_ENTITY_DESC icp_desc ON rtd.lDesICP = icp_desc.ItemIDINNER JOIN HFMTEST_VALUE_ITEM value_item ON rtd.lDesValue = value_item.ItemIDLEFT JOIN HFMTEST_RTS_1_2023 rts ON rtd.lDesId = rts.lDesId;查询结果

本篇文章主要介绍了合并抵消代码的编写,当然,实际项目中的抵消逻辑比这复杂的多得多,本篇只起到抛砖引玉的作用。(在我入行初期,连最基本的规则都看不懂,曾经在网上认识了一个博主,算是行业大佬,也是抱着请教的态度咨询了一些问题,印象最深刻的就是,截取了一段用CON编写的自定义的函数去咨询人家,结果那位大佬却懒得跟我浪费口舌,只是告诉我,我连最基本的HFM系统入门都没有做到,那时也是刚从财务领域转行到咨询行业,带我的师傅提前离职,当时真是备受打击,也就是这个时候,下定决心,将来自己有能力了,就系统的总结自己所学,然后分享给像我一下迷茫的初学者。)

来源:天哥教育

相关推荐