検証プロセスの一部として、Essbase計算スクリプトを使用する構成可能な計算またはオンデマンド・ルールを作成して検証する際、Financial Consolidation and Closeによって、ルールの実行時にパフォーマンスの低下を引き起こす可能性がある問題についての警告が提供されます。これらの警告を表示するには、Calculation Managerで「エラーおよび警告」タブを選択し、緑のボタンをクリックしてスクリプト診断を実行します。
次のスクリーンショットでは、緑で強調表示されたセルがFinancial Consolidation and Closeからの警告です。表示されている他の警告は、Calculation Managerからのものです。

注:
Financial Consolidation and Closeのルール検証警告は、推奨事項モジュールでも表示されます。アプリケーションに関する推奨事項の表示を参照してください。
警告メッセージは、スクリプトの行番号に基づいてソートされて表示されます。
Calculation Managerでルール検証警告を表示するには:
この後の各項では、ルール検証警告を解決する方法について詳しく説明します。
アンカーの使用に関するCalc Managerのスクリプト検証
Calc Managerスクリプトでのアンカーの正しい使用方法については、次のガイドラインに従います:
DSO以外のアプリケーションの場合
構成可能な計算(挿入位置)については、シナリオ、年、期間、エンティティまたはビューのメンバーをアンカーとして選択することはできません。
オンデマンド・ルール(ODR)については、シナリオ、年、期間、エンティティ、連結または通貨のメンバーをアンカーとして選択することはできません。
密ディメンションのメンバーをアンカーとして使用することは避けてください。DSO以外のアプリケーションの場合、勘定科目は密ディメンションです。密メンバー・ブロックについては、CALCMODE(BOTTOMUP)を使用してもパフォーマンス上の利点は得られません。
DSOアプリケーションの場合
DSOアプリケーションでは、増減は密ディメンションです。DSO以外のアプリケーションからDSOアプリケーションに移行する場合は、増減ディメンションのメンバーがアンカーでないことを確認する必要があります。DSOアプリケーションでは勘定科目が疎であるため、勘定科目ディメンションのメンバーをメンバー・ブロックのアンカーとして選択できます。
勘定科目メンバーをアンカーとして選択できない場合は、他の疎ディメンションのメンバーをアンカーとして選択します。
構成可能な計算(挿入位置)については、シナリオ、年、期間、エンティティまたはビュー(密)のメンバーをアンカーとして選択することはできません。
オンデマンド・ルール(ODR)については、シナリオ、年、期間、エンティティ、連結または通貨のメンバーをアンカーとして選択することはできません。
密ディメンションのメンバーをアンカーとして使用することは避けてください。DSOアプリケーションでは、増減および期間は密ディメンションです。密メンバー・ブロックについては、CALCMODE(BOTTOMUP)を使用してもパフォーマンス上の利点は得られません。
DSO以外のアプリケーションの構成可能な計算(挿入ルール)の例を次に示します。各行は、行番号である#で示されています。
#1 FIX ("FCCS_Periodic", "FCCS_Journal Input", "FCCS_Managed Data", "IFRS_IN ", "Entity Currency", "FCCS_Mvmts_NetIncome", @relative("Total Categories", 0), @relative("Total Area", 0), @LEVMBRS("Intercompany", 0) @relative("Total Custom", 0))
#2 "FCCS_Entity Input" (
#3 IF (@ISMBR("Actual_Red"))
#4 IF (@ISUDA("Entity", "B10") AND ("FCCS_Mvmts_NetIncome" <> #Missing))
#5 ENDIF
#6 ENDIF
#7 )
#8 ENDFIX
このスクリプトの例では、ルールの検証プロセスによって次の警告が生成されます:
行2:アンカー・メンバーFCCS_Entity Inputのかわりに増減メンバーFCCS_Mvmts_NetIncomeをアンカーとして使用します。
DSOアプリケーションの構成可能な計算(挿入ルール)の例を次に示します。各行は、行番号である#で示されています。
#1 FIX("FCCS_Periodic","FCCS_No Intercompany","No operating Expense","Product1 ","CORP_IN","IC_PROFIT_ACC ")
#2 "FCCS_Managed Data"(
#3 @CALCMODE(BOTTOMUP);
#4 IF (@ISMBR("FY21"))
#5 "FCCS_OpeningBalanceAdjustment"=10;
#6 ENDIF
#7 )
#8 ENDFIX
このスクリプトの例では、ルールの検証プロセスによって次の警告が生成されます:
行2: アンカー・メンバーFCCS_Managed Dataのかわりに勘定科目メンバーIC_PROFIT_ACCをアンカーとして使用します。
@CALCMODE (BottomUp)に関するCalc Managerのスクリプト検証
@CALCMODE(BOTTOMUP)と@CALCMODE(TOPDOWN)の比較
Financial Consolidation and Closeでは、TOPDOWNと比べて、構成可能な計算(挿入位置)またはオンデマンド・ルール(ODR)を使用する計算が高速になるBOTTOMUPを使用することをお薦めします。
計算のデフォルト・アプローチであるBOTTOMUP中に、Essbaseは、疎メンバー・ブロックを使用してデータを計算する前に、どの既存のデータ・ブロックを計算する必要があるかを判断します。次に、Essbaseは、データベース全体の計算中に計算する必要のあるブロックのみを計算します。
例: A = B + C
Aは、BおよびCがデータベースに存在する場合にのみ計算されます。実際の計算が開始される前に、BおよびCに対するAの依存関係が認識されます。
TOPDOWN中には、Essbaseは、メンバー・ブロックの疎メンバーを使用するすべての潜在的データ・ブロックに対して式を計算します。
例: A = B -> D + C -> D
式を計算するために、EssbaseはAのすべての組合せを調査し、B -> DまたはC -> Dが存在するかどうかを確認する必要があります。
Essbaseは、BOTTOMUPをデフォルト・メカニズムとして使用して、割り当てられた式を疎メンバーに対して計算しますが、式が本質的に複雑である場合は、計算がTOPDOWNで実行されます。
複雑な式は、次の基準を満たすものです:
ディメンション間演算子[ -> ]を含む
1つ以上の範囲関数(@AVGRANGE、@MAXRANGE、@MINRANGE、@SUMRANGEなど)を使用する
関係関数または財務関数(@ANCESTVAL、@NEXT、@PARENTVAL、@SHIFT、@ACCUM、@GROWTHなど)を使用する
このような状況では、Essbaseは、@CALCMODE(BOTTOMUP)関数を提供して、BOTTOMUPで実行する疎の式の計算を適用します。
構成可能な計算(挿入ルール)の例を次に示します。各行は、行番号である#で示されています。
#1 FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source")
#2 "FCCS_Income_Statement"(
#3 "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4 )
#5 ENDFIX
このスクリプトの例では、ルールの検証プロセスによって次の警告が生成されます:
行2: メンバー・ブロックFCCS_Income_Statementに対して@CALCMODE(BOTTOMUP)を使用します
詳細は、次のトピックを参照してください: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html
ハイブリッドBSOに関するCalc Managerのスクリプト検証
ハイブリッドFinancial Consolidation and Closeアプリケーションについては、最適なパフォーマンスを得るために、適用可能な場合はHYBRIDBSOINCALCSCRIPT NONE/FULLを設定することをお薦めします。
デフォルトでは、構成可能な計算(挿入ルール)についてはHYBRIDBSOINCALCSCRIPTがFULLに設定され、オンデマンド・ルールについてはHYBRIDBSOINCALCSCRIPTがNONEに設定されています。
ルールの検証プロセスでは、「動的計算」ストレージ・タイプを持つCustomTopディメンション・メンバーがスクリプトに含まれているかどうかがチェックされます。
オンデマンド・ルールの例を次に示します。各行は、行番号である#で示されています。
#1 FIX ("FCCS_Periodic", "FCCS_No Intercompany", "No Product", "FCCS_Mvmts_NetIncome", @RELATIVE("AllDepts", 0), "No Department")
#2 FIX (@RELATIVE("TotalHFM", 0))
#3 "StkCmpRev_CE" = -("555011_CE"->"FCCS_YTD"->"FCCS_Intercompany Top") - ("555012_CE"->"FCCS_YTD"->"FCC_Intercompany Top");
#4 ENDFIX
#5 ENDFIX
このスクリプトの例では、ルールの検証プロセスによって次の警告が生成されます:
行3: SET HYBRIDBSOINCALCSCRIPT NONEを使用してこのブロックに対するハイブリッド計算を無効化してください。
詳細は、次のトピックを参照してください: https://docs.oracle.com/en/cloud/paas/analytics-cloud/tress/hybridbsoincalcscript.html。
@CALCMODE (BLOCK)に関するCalc Managerのスクリプト検証
この特定のユース・ケースについては、Financial Consolidation and Closeでは、パフォーマンスを向上させるために、適用可能な場合は@CalcMode (BLOCK)を追加することをお薦めします。
@CalcMode (BLOCK)の詳細は、次のトピックを参照してください: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html。
DSOアプリケーションとDSO以外のアプリケーションの両方についてアンカー・ブロック内に@CALCMODE(BLOCK)が必要であるかどうかを特定するために、ルールの検証プロセスでは次の条件がチェックされます:
アンカー・ブロックの式が複雑であるかどうか
式に特定の関数(@ANCEST、@CURRMBR、密メンバーに対する@ISMBR、@MDANCESTVAL、@MDPARENTVAL、@MDSHIFT、@NEXT、@PARENT、@PARENTVAL、@PRIOR、@SANCESTVAL、@SPARENTVAL、@SHIFTなど)が含まれているかどうか
これらの条件を満たす場合、検証プロセスによって、行番号を含む警告が発行されます。
構成可能な計算(挿入ルール)の例を次に示します。各行は、行番号である#で示されています。
#1 FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source")
#2 "FCCS_Income_Statement"(
#3 "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4 )
#5 ENDFIX
このスクリプトの例では、ルールの検証プロセスによって次の警告が生成されます:
行2: メンバー・ブロックFCCS_Income_Statementに対して@CALCMODE(BLOCK)を使用します。