診斷部署可設定的整合規則之後的效能問題

Financial Consolidation and Close 中的可設定整合規則效能可能是未限制計算範圍 (未適當地選取自訂規則中的來源成員) 或使用密集維度中的多個已儲存成員作為規則來源 (舉例來說) 所造成。

檢查不良的規則設計

為了確保正確的結果和最佳效能,最佳作法一律是指定要對其執行計算的維度和成員。

最佳整合規則效能需要將計算範圍限制為必要維度和成員。未將必要維度和成員新增至計算,會強制對所有可能的成員組合執行規則。例如,下列範例規則需要只對自訂維度成員 No Department 執行計算。在來源中新增維度成員時,只對 No Department 執行規則,以加快執行。
範例規則集的圖解

檢查規則來源中的多個已儲存成員 (Account 維度)

將整合規則來源中的許多層級 0 已儲存科目重新導向至單一目標科目時,效能可能會降低。在這類情況下,Oracle 建議您建立具有已儲存資料儲存的預留位置科目成員,以及在 FCCS_110 (單一幣別應用程式) 或 FCCS_30 (多幣別應用程式) 中寫入插入規則,以將子項金額重新導向至其中。您接著可以使用整合規則來源中的預留位置科目來取代動態父項,確保更快速地執行規則。

停用 CALC DIM 邏輯

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

註:

停用 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

使用案例:解決部署可設定的整合規則之後的效能問題

此範例假設 100 P/L 科目 (Acc_001 到 Acc_100) 存在於動態父項 Retained Earnings Current 下方,而此父項是應用程式中的其中一個 P/L 科目。請參閱下列圖形。
具有許多已儲存成員的範例動態父項

下列圖形圖解說明直接或間接透過參照以使用 Retained Earnings Current 作為來源的規則。
使用直接參照的範例規則


使用間接參照的範例規則
在先前的間接參照中,Retained Earnings Current 的所有層級 0 子項都會間接是來源的一部分,因為它位在 Total Equity 下方。

下列步驟涉及變更規則定義以及新增重新導向指令碼,讓規則執行地更快:

  1. 建立預留位置科目。

    在 FCCS_BalanceSheet 下方建立名稱為 Retained Earning_Memo 的備忘錄科戶。設定要忽略的整合運算子 (~) 以及要儲存的資料儲存。所有其他特性將會與動態父項的特性相同。如下列圖解所示,Retained Earning_Memo 預留位置科目將保留 Retained Earnings Current 的值。
    範例備忘錄科戶

  2. 重新整理立方體。
  3. 在 FCCS_30 中,將來源收入值複製為 Retained Earning_Memo。您可以使用下列其中一個範例指令碼,將子項值複製至 Retained Earning_Memo。請務必視需要修改這些指令碼,以符合需求。如需可設定計算效能最佳作法的詳細資訊,請參閱 管理 Financial Consolidation and Close 中的 可設定的計算最佳作法

    指令碼 1:

    SET HYBRIDBSOINCALCSCRIPT NONE; // Use this setting only with Hybrid environments
    FIX("FCCS_Entity Input", "Parent Currency", @RELATIVE("Movement", 0), @RELATIVE("FCCS_Total Data Source", 0), @RELATIVE("FCCS_Intercompany Top", 0), @LEVMBRS("Multi-GAAP", 0)) 
    "Retained Earning_Memo" (
            @CALCMODE(BOTTOMUP);
            "FCCS_Retained Earnings Current";
    ) 
    ENDFIX
    

    指令碼 2:

    SET HYBRIDBSOINCALCSCRIPT NONE;// Use this setting only with Hybrid environments
    FIX("FCCS_Entity Input", "Parent Currency", @RELATIVE("Movement", 0), @RELATIVE("FCCS_Total Data Source", 0), @RELATIVE("FCCS_Intercompany Top", 0), @LEVMBRS("Multi-GAAP", 0)) 
    "Retained Earning_Memo" (
            @CALCMODE(BOTTOMUP);
            @SUM(@RELATIVE("FCCS_Retained Earnings Current", 0) AND @LIST(@UDA("Account", "REVENUE") OR @UDA("Account", "LIABILITY") OR @UDA("Account", "EQUITY") OR @UDA("Account", "SAVED ASSUMPTION"))) - @SUM(@RELATIVE("FCCS_Retained Earnings Current", 0) AND @LIST(@UDA("Account", "EXPENSE") OR @UDA("Account", "ASSET")));
    ) 
    ENDFIX
    
  4. 在使用 Retained Earnings Current 的可設定整合規則中,使用 Retained Earning_Memo 作為來源。
    1. 如果在來源中直接使用 ILvl0Descendants(Retained Earnings Current):下列圖解顯示在實作此使用案例中的建議之前的規則。
      未使用備忘錄科目之規則的圖解

      下列圖解顯示在實作此使用案例中的建議之後的規則。
      使用備忘錄科目之規則的圖解

    2. 如果間接使用 ILvl0Descendants(Retained Earnings Current):下列圖解顯示在實作此使用案例中的建議之前的規則。
      未使用備忘錄科目之規則的圖解

      下列圖解顯示在實作此使用案例中的建議之後的規則。
      未使用備忘錄科目之規則的圖解