第八篇.HFM規則入門(二)
今天這篇文章主要是引用官方文件的內容並加以解釋,筆者認為有關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:
規則中一般只用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 倍。
正確的寫法應該是:
透過這個簡單的例子,說明非常重要的幾點:
1) 寫規則時必須要關注維度模板中每個維度的屬性配置,特別是科目維度。
2) 儘可能將公式中的維度組合寫全(主要是account,icp,C 1-Cn,其他維度一般不需要寫在公式中),可避免垃圾資料和不正確的資料產生。
3) 讀者一定要敢於懷疑,並且敢於去嘗試不同寫法的資料結果。
今天就先寫這麼多,下篇我們將真正走進exp函式的複雜場景使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28963606/viewspace-2782072/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 第七篇.HFM規則入門(一)
- 第十一篇.HFM規則入門(四:深入淺出For語句)
- 第十篇.HFM規則入門(三:深入使用exp函式)函式
- PHP入門:常量基本規則PHP
- camunda快速入門(五):DMN規則引擎如何使用
- Spring Cloud Alibaba - Sentinel入門案例(四)(熱點規則 )SpringCloud
- 正則 (入門篇)
- OPA 重新定義規則引擎-入門篇 (持續更新中)
- 關聯規則分析 Apriori 演算法 簡介與入門演算法
- gRPC(二)入門:Protobuf入門RPC
- 第2-4-2章 規則引擎Drools入門案例-業務規則管理系統-元件化-中臺元件化
- iOS 不規則Button點選(二)iOS
- spring入門(二)Spring
- mySql入門-(二)MySql
- JavaScript 正則入門到掌握JavaScript
- OpenAPI規範入門API
- JavaScript toFixed() 四捨五入規則JavaScript
- 新手入門:Linux使用技巧15則Linux
- Flutter入門篇(二)Flutter
- Electron 入門指北(二)
- Vue快速入門(二)Vue
- Go快速入門(二)Go
- 規則
- Drools與動態載入規則檔案
- 從入門到放棄:Python+selenium unittest測試框架及基本語法規則Python框架
- JS正規表示式入門JS
- 動態規劃入門篇動態規劃
- Regex 正規表示式入門
- Flask二之快速入門Flask
- 五線譜入門(二)
- Flutter入門——山寨掘金(二)Flutter
- JavaSE基礎入門(二)Java
- [譯】Redux入門教程(二)Redux
- Nginx入門實踐(二)Nginx
- HTML入門基礎(二)HTML
- Jetpack ---- Data Binding入門(二)Jetpack
- 正規表示式從入門到入坑
- win10怎麼自定義防火牆入站規則_win10設定防火牆入站規則的方法Win10防火牆