在維度內配置值

Essbase 計算指令碼範例使用 @ALLOCATE 函數,將預算費用總計分攤至兩個產品的費用類別。已編列預算的費用總計是根據去年的實際值來分攤。

假設您對 Sample Basic 進行了下列變更,如下圖所示:

  • 在 「評量」維度的 「費用總計」下新增下階 「租賃」

  • 已新增子項 PY Actual 至 Scenario 維度

圖 24-3 修改的計量和案例維度


範例基本大綱區段,包含已修改的 Measures 與 Scenario 維度。

假設 1000 與 2000 的資料值分別載入至「預算」->「Colas 與 Root Beer 的費用總計」。這些值必須分攤至每個支出種類,以根據 PY 實際總支出的非遺漏子項平均分攤值。配置的值必須四捨五入至最接近的金額。

命令檔範例:

/* Allocate budgeted total expenses based on prior year */

FIX("Total Expenses")
   Budget = @ALLOCATE(Budget->"Total Expenses",
   @CHILDREN("Total Expenses"),"PY Actual",,
   spread,SKIPMISSING,roundAmt,0,errorsToHigh)
ENDFIX

計算指令碼的結果:

                             Budget   PY Actual
Colas       Marketing        334 *    150
            Payroll          #MI      #MI
            Lease            333      200
            Misc             333      100
            Total Expenses   1000     450
Root Beer   Marketing        500      300
            Payroll          500      200
            Lease            500      200
            Misc             500      400
            Total Expenses   2000     1100

* 捨入錯誤會新增至此值。

Essbase 會循環資料庫,執行下列計算:

  1. 修正「費用總計」的下階。

    使用 @ALLOCATEFIX 陳述式可提升計算效能。

  2. 對於「預算」->「資料欄」->「行銷」,將 1 除以每個月「PY 實際」->「資料欄」中每個支出種類的非遺漏值計數。

    在此情況下,1 除以 3,因為「預算」->「資料欄」有 3 個非遺漏的費用值。

  3. 從步驟 2 (.333) 取得值,將其乘以「預算」->「資料欄」->「總費用」(1000) 的值,然後四捨五入至最接近的金額 (333)。結果會放置在「Budget -> Colas -> Marketing」中。

  4. 針對「預算 -> 資料欄」,然後針對「預算 -> 根啤酒」的每個支出種類重複步驟 2 和 3。

  5. 如計算命令檔中所指定,會將配置的值四捨五入至最接近的整美元。

    Essbase 會在區塊中進行第二次傳遞,讓捨入值的總和等於配置值 (例如,1000 代表「預算」->「資料欄」->「費用總計」)。在此範例中,Budget -> Colas -> Total Expenses 有 1 的捨入錯誤,因為費用分類加總為 999,而非 1000,這是分攤值。因為所有配置的值都相同 (333),所以會將 1 的捨入錯誤新增至配置範圍中的第一個值,即「預算 -> 資料欄 -> 行銷」(值為 334)。