自訂動因公式範例

自訂動因公式範例會採用以下數值:

  • 階段 1 維度:GL_ Department x GL_Account

  • 階段 2 維度:ACT_Department x ACT_Activity

Oracle Hyperion Profitability and Cost Management 的計算指令碼層代程序中會插入定義的指令碼,此指令碼是針對任何使用此動因的來源的自訂動因所定義。系統產生的指令碼會建立 FIX 陳述式,並依據附加至來源的指派邏輯所定義的組合,指出來源及目標。

自訂動因指令碼不需要提供此 FIX,但可利用或修改 FIX,以從不同的位置 (即非針對 DestinationSourceAssignmentGlobal 測量位置所定義的位置) 參照資料。

自訂動因的常用用途取決於資料儲存位置的參照能力 (不包含上述四個標準位置),允許使用者輸入更高階層層級或更少交集的動因測量。

經過 CalculatedDriverValue 測量計算的預設 FIX 陳述式,會反映來源及目標之間的連結。透過範例階段,系統產生的指令碼所建立的 FIX 將顯示如下:

GL_Department.member x GL_Account.member x ACT_Department.member x ACT_Activity.member

在此 FIX 中,每個維度的維度成員皆會反映執行中的配置的來源交集與目標交集。

下列範例將會修改這個預設的 FIX,以從其他位置擷取動因測量。請記住,若預設 FIX 參照的成員與您所要的目的相符,則不必覆寫該成員。

範例 1:在其他維度中 (此案例為 ACT_Department),參照位於唯一目標交叉維度 NoMember 中的動因測量

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember] ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

此公式適用於整個部門有單一的動因值時 (如平方英尺、公尺或人數)。

範例 2:在其他維度中,參照位於任一目標交叉維度 NoMember 中之父項的動因測量:

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember]"->"(@PARENT(ACT_Department)" ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

您也可以參照祖代的層代,並使用 @ANCSET 函數擷取其數值。在此範例中,動因會從目標部門成員的層代 2 祖代中提取 DriverMeasure 值:

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember]"->"(@ANCEST(ACT_Department, 2)" ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

其他的常用用途是針對來源及目標組合的性質鍵入動因值計算。此選項允許依據配置中包含的交集特性來調整動因,以應付特定的狀況。

範例 3:根據任一個目標成員的使用者定義屬性 (UDA),參照不同的動因計算測量:

IF(@ISUDA(Activity,"UDA1"))

"CalculatedDriverValue" = {Measure1->Destination};

ELSE IF (@ISUDA(Activity,"UDA2"))

"CalculatedDriverValue" = {Measure2->Destination};

ELSE IF (@ISUDA(Activity,"UDA3"))

"CalculatedDriverValue" = {Measure3->Destination};

ENDIF;

使用此公式,可以依據目標的某一特性 (如產品尺寸或客戶分類) 鍵入動因公式。請注意,範例中的 ‘{Measure1->Destination}’ 語法與一般的 Oracle Essbase 計算指令碼語法不同。大括弧 ({ }) 的使用能讓 Profitability and Cost Management 轉譯簡短的‘->Destination’,並取代為欲選取的實際目標。當您將指令碼部署至 Essbase 時,Profitability 應用程式會插入正確的成員參照及語法。