第八篇.HFM规则入门(二)

18 篇文章 18 订阅
15 篇文章 3 订阅

今天这篇文章主要是引用官方文档的内容并加以解释,笔者认为有关exp函数使用的资料,官方文档上的例子是非常经典的,值得读者细品。

1、Exp函数介绍

Exp函数是HFM的顶级对象,即只能是HS.exp的用法,并且只能在计算规则(Calculate),折算规则(Translate),分摊规则(Allocate)中使用。

不能在合并规则(Consolidate)中使用,读者可以想一想为什么?

Hs.exp中的维度组合一般只用Account,ICP,C1-CN(N代表自定义维度的个数)。

语法:hs.exp “目标维度组合=源维度组合或者数值”,并且每个维度之间是英文的.分割,每个维度使用短名称和#连接。

维度短名称列表(8个固定维度的短名称取的就是每个维度的首字母):

维度编码

维度短名称(规则中用)

说明

Account

A

科目维度

Entity

E

组织维度

Year

Y

年维度

Period

P

期间维度

View

W

视图维度,由于View和Value维度首字母都是V,为了区分使用W

Value

V

值维度

ICP

I

往来单位

Scenario

S

情景维度

Custom1-CustomN

C1-Cn

2.1 版本以后,自定义维度支持给自定维度重命名,并且可以大于4个自定维度,比如Custom 1 设置为Report,更加直观

2、Exp函数示例

先看下以下示例,

将科目库存现金:100101与自定义维的 [None] 成员交叉的单元格设置为100:

HS.Exp "A#100101.C1#[None].C2#[None].C3#[None].C4#[None]=100"

规则中一般只用Account,ICP, C1-Cn,不用其他维度,为什么?

因为其他维度默认就是“当前成员”,什么意思,上面这个语句也可以将1 2 个维度(假设是4个自定义维度)组合全部写出来,怎么写?

HS.Exp "E#"&hs.entity.member&".Y#"&hs.Year.member&"….A#100101.C1#[None].C2#[None].C3#[None].C4#[None]=100"

这样写可以,但是,是不是很复杂,可读性也不好,初学时如果对“当前成员”不理解,可以这样记住:能和H S 直接使用的维度就是当前成员,有如下维度:

我们再回过头去看上面的语句:

HS.Exp "A#100101.C1#[None].C2#[None].C3#[None].C4#[None]=100"

上面的维度组合我漏了I CP 维度,可以吗?

a. 一般库存现金科目是非I CP 科目,既不挂I CP ,也就是默认在[ ICP None] 上

科目维度I CP 属性字段:isICP =”N” :

b. 如果isICP =”Y”,即:

HS.Exp "A#100101.C1#[None].C2#[None].C3#[None].C4#[None]=100"

如果还这样写,有问题吗?

显然有问题,这个语句会将所有I CP 维度都填充,当表单选择 ICP 维度成员[ ICP TOP] 时,数据会翻 N 倍。

正确的写法应该是:

HS.Exp "A#100101. I#[ICP None]. C1#[None].C2#[None].C3#[None].C4#[None]=100"

通过这个简单的例子,说明非常重要的几点:

1) 写规则时必须要关注维度模板中每个维度的属性配置,特别是科目维度。

2) 尽可能将公式中的维度组合写全(主要是account,icp,C 1-Cn,其他维度一般不需要写在公式中),可避免垃圾数据和不正确的数据产生。

3) 读者一定要敢于怀疑,并且敢于去尝试不同写法的数据结果。

今天就先写这么多,下篇我们将真正走进exp函数的复杂场景使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值