診斷部署可設定計算 (插入點) 規則之後的效能問題

可設定計算可用於實作立即可用整合程序未提供的使用案例。

  • 多重幣別應用程式:可以撰寫可設定計算,用於處理當地幣別 (未轉譯的實體層級資料)、轉譯 (已轉譯的實體層級資料) 和合併資料。
  • 單一幣別應用程式:可以撰寫可設定計算,用於處理當地幣別 (未轉譯的實體層級資料) 和合併資料。

這些計算由 Financial Consolidation and Close 在執行整合程序時呼叫,無法作為獨立計算呼叫。撰寫不當的可設定計算可能會嚴重影響整合程序的執行時期效能。Financial Consolidation and Close建議卡會顯示可能造成整合期間效能降低之規則的相關警告。這些警告有可能會提高整合效能,因為它們是您在編寫可設定的計算指令碼時,應該要遵循的最佳作法指標。如需詳細資訊,請參閱管理 Financial Consolidation and Close中的解決計算指令碼驗證警告

此外,請使用下列建議來提升可設定計算的效能。

  • 作為隨需規則執行當地幣別可設定計算
  • 停用 CALC DIM 邏輯
  • 設定 HYBRIDBSOINCALCSCRIPT
  • 以 BOTTOMUP 方式執行可設定計算
  • 使用 BLOCK 模式的計算
  • 考量表示式右側的成員總數

作為隨需規則執行當地幣別可設定計算

為當地幣別撰寫的可設定計算將分別從 Currency 和 Consolidation 維度中,對實體幣別和實體輸入成員執行。透過一些變更,當地幣別可設定計算可以撰寫為隨需規則 (ODR)。這種方法的益處包含:

  • 縮短整合時間。

    假設使用者需要 5 分鐘才能將上一個期間 (已鎖定) 值複製到實體幣別和實體輸入層級的目前期間。此任務只需執行一次,因為上一個期間值不太可能變更。將此計算包含在當地幣別可設定計算中,將導致每次呼叫整合時都執行此計算,從而導致整合時間增加。將此類計算作為 ODR 移動可讓您在需要時呼叫它們,從而節省時間。在此情況下,透過避免複製上一期間的資料,每個期間可節省 5 分鐘的整合時間。

  • 協助除錯當地幣別可設定計算。

    考量一個使用案例,在每次整合期間,您需要在當地幣別和實體輸入層級執行計算邏輯。由於此類規則必須是當地幣別可設定計算的一部分,因此每次嘗試使用規則除錯效能問題都需要您執行整合,這是十分耗時的程序。為了節省時間,您可以將當地幣別可設定計算作為 ODR 移動、除錯和微調它們,然後將其作為當地幣別可設定計算移回原位。

  • 提供輕鬆的執行時期存取和統計。

    ODR 可以從 Financial Consolidation and Close 規則卡呼叫,也可以直接從 Calculation Manager 呼叫。從 Calculation Manager 執行的 ODR 可產生統計,協助識別花費處理時間的位置以及執行計算的成員。請依照下列步驟收集執行時期統計:

    1. 存取 Calculation Manager 並啟動 ODR。
      在 Calculation Manager 中啟動的隨需規則

    2. 選取執行時期提示。
    3. 在啟動狀態中按一下確定

      此時,畫面會顯示日誌訊息頁籤。此頁籤顯示執行時期統計。

將可設定計算移至 ODR

當為當地幣別撰寫可設定計算時,您無法將 FIX 中的 Scenario、Year、Period 和 Entity 維度中的成員用作錨點或用於表示式的左側;您只能使用 Currency 和 Consolidation 維度中的成員。由於在整合程序期間呼叫了當地幣別規則,因此將考量作為執行時期提示 (RTP) 提供給整合程序的 Scenario、Year、Period 和 Entity 維度的成員。

您無法在 ODR 中使用 Scenario、Year、Period、Entity、Currency 和 Consolidation 維度的成員。相關維度成員作為 RTP 提供以起始 ODR 執行。

停用 CALC DIM 邏輯

為插入點建立可設定的計算指令碼時,Financial Consolidation and Close 會自動在父項層級產生資料,以便在下一個插入點中提供這些父項成員。Financial Consolidation and Close 會新增 CALC DIM 邏輯來向上彙整您所填入的資料。根據階層的複雜性,處理這個新增的 CALC DIM 邏輯是十分耗時的程序。如果您不需要在稍後的插入點中參考重新計算的父項成員,便可以藉由停用 Financial Consolidation and Close 為插入點新增的 CALC DIM 邏輯,加快整體整合程序的速度。

Note:

停用 CALC DIM 邏輯會影響整合指令碼產生。停用 CALC DIM 邏輯後,請仔細檢查您的整合結果。

若要防止 Financial Consolidation and Close 在多重幣別應用程式中產生不必要的 CALC DIM 邏輯,請從下列清單中定義適當的替代變數,並將它們設為 True

  • CONFCALC_FCCS10_DISABLECALCDIM
  • CONFCALC_FCCS20_DISABLECALCDIM
  • CONFCALC_FCCS25_DISABLECALCDIM
  • CONFCALC_FCCS30_DISABLECALCDIM
  • CONFCALC_FCCS40_DISABLECALCDIM
  • CONFCALC_FCCS50_DISABLECALCDIM
  • CONFCALC_FCCS60_DISABLECALCDIM
  • CONFCALC_FCCS70_DISABLECALCDIM

例如,假設您已在 FCCS_10 與 FCCS_20 可設定計算規則中撰寫自訂邏輯。如果您想要停用 FCCS_20 但不停用 FCCS_10 的 CALC DIM 邏輯,您就應該定義名稱為 CONFCALC_FCCS20_DISABLECALCDIM 的替代變數,並將其設為 True

若要防止 Financial Consolidation and Close 在單一幣別應用程式中產生不必要的 CALC DIM 邏輯,請從下列清單中定義適當的替代變數,並將它們設為 True

  • CONFCALC_FCCS110_DISABLECALCDIM
  • CONFCALC_FCCS120_DISABLECALCDIM
  • CONFCALC_FCCS130_DISABLECALCDIM
  • CONFCALC_FCCS140_DISABLECALCDIM
  • CONFCALC_FCCS150_DISABLECALCDIM

SET HYBRIDBSOINCALCSCRIPT

SET HYBRIDBSOINCALCSCRIPT 命令控制計算指令碼中的特定區塊是否在混合模式下執行。

考量下列當地幣別、期初餘額結轉之後規則的可設定計算指令碼:

FIX("Entity Currency", "Entity Input") 
        FIX("Data Input", "No Intercompany", "Local GAAP", "No Intercompany", "No Products")
                 "Changes In Cash"(
                         "Cash" = "Bank" -> "Total Product";
                   )
        ENDFIX
ENDFIX
在起始整合時,對於可設定計算,Financial Consolidation and Close 透過使用 SET HYBRIDBSOINCALCSCRIPT FULL;SET HYBRIDBSOINCALCSCRIPT NONE; 命令封裝規則來啟用混合模式,這些命令在 Calculation Manager 中不可見。不會為 ODR 新增這些命令。
SET HYBRIDBSOINCALCSCRIPT FULL;
FIX("Entity Currency", "Entity Input") 
        FIX("Data Input", "No Intercompany", "Local GAAP", "No Intercompany", "No Products")
                 "Changes In Cash"(
                         "Cash" = "Bank" -> "Total Product";
                   )
        ENDFIX
ENDFIX

SET HYBRIDBSOINCALCSCRIPT NONE;

若要確保在整合期間開啟混合模式以進行可設定計算不會影響效能,請關閉混合模式 (請參閱下列範例),然後執行整合。

SET HYBRIDBSOINCALCSCRIPT FULL;

SET HYBRIDBSOINCALCSCRIPT NONE;
FIX("Entity Currency", "Entity Input") 
        FIX("Data Input", "No Intercompany", "Local GAAP", "No Intercompany", "No Products")
                 "Changes In Cash"(
                         "Cash" = "Bank" -> "Total Product";
                   )
        ENDFIX
ENDFIX

SET HYBRIDBSOINCALCSCRIPT NONE;

以 BOTTOMUP 方式執行可設定計算

以 TOPDOWN 方式執行可設定計算可能會降低速度。因此,呼叫計算的整合程序會變慢。若要避免此問題,請確保以 BOTTOMUP 方式執行可設定計算。如需詳細資料,請參閱 中的@CALCMODEEssbase Technical Reference。

切換至 BOTTOMUP 計算時,請確保目標區塊存在且資料計算正確。

使用 BLOCK 模式的計算

由於 CELL 模式的計算可能會降低可設定計算的速度,因此請務必在 BLOCK 模式下執行它們。如需詳細資料,請參閱 中的@CALCMODEEssbase Technical Reference。

切換至 BLOCK 模式的計算時,請仔細考量區塊內的資料相依關係,以確保產生的資料準確無誤。

考量表示式右側的成員數

有時,您可能需要將聚總資料提取至「無成員」,如下列範例所示:

"Target_Account_Stored" -> "Mvmt_None" = "FCCS_Mvmts_Subtotal"
 -> "Source_Account_DynamicCalc" -> "Total Custom1" -> "Total Custom2";

此範例嘗試將右側動態計算的結果存入已儲存的密集成員中。依預設,Financial Consolidation and Close 將此可設定計算封裝在 SET HYBRIDBSOINCALCSCRIPT FULL;SET HYBRIDBSOINCALCSCRIPT NONE; 命令中。但是,即使在封裝之後,此計算的執行效能也可能不佳,因為它是從最上層成員讀取的。若要改善效能,您可以重新寫入此類計算來反覆讀取所需維度的層級 0 成員,而不是從最上層成員讀取,如下列範例所示:

SET HYBRIDBSOINCALCSCRIPT NONE; /*Turn off hybrid mode */
FIX(@RELATIVE( "Total Custom1", 0 ), @RELATIVE( "Total Custom2", 0 ), <other dimension members of FIX> )
       "FCCS_Mvmts_Subtotal" ( @CALCMODE( BOTTOMUP );
             "Target_Account_Stored" -> "Mvmt_None"  =  "Target_Account_Stored"  -> "Mvmt_None" + "Source_Account_DynamicCalc";
             )
ENDFIX