プライマリ・コンテンツに移動
Oracle® Essbase Oracle Essbaseの使用

F17137-05
目次へ移動
目次

前
次
機械翻訳について

計算のトレース

計算トレースを使用すると、メンバー式の処理の分析、および計算スクリプトの調整を行うことができます。

計算トレースでは、キューブに対して計算スクリプトが正常に実行された後に、計算について記録された情報にアクセスできます。

計算をトレースしても、計算の動作は変更されません。 計算がSmart Viewで起動され、管理者が有効にした計算トレースが接続されたサーバーにある場合、Smart Viewでは、計算の実行後に詳細を含むポップアップ・ダイアログ・ボックスが表示されます。 計算トレース情報は、ポップアップ・ダイアログからテキスト・エディタに貼り付けることができます。 または、Essbaseのデータベース・ファイル・ディレクトリにあるcalc_trace.txtに同じ情報があります。

計算の結果が予想したものと異なる場合に、計算トレース情報は計算スクリプトの実行のデバッグに役立つことがあります。

計算トレースは、シナリオ管理が有効にされているアプリケーションではサポートされません。

計算トレースを有効にするには、管理者は最初にCALCTRACEアプリケーション構成パラメータをオンにする必要があります。 アプリケーションで計算トレースを有効にした後は、次の2つの方法でそれを利用できます。

次の計算スクリプトはSample Basicで実行されます。 スクリプトにはSET TRACEコマンドが含まれており、カリフォルニア市場における製品SKU番号100-10の1月の計上された売上を表すデータの交差部(セル)にログ記録される詳細情報をリクエストします。
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

Sample Basicには、製品と市場の2つの疎ディメンションが含まれています。 メンバー式は、密ディメンションであるメジャーのメンバーのSalesに対する式です。 FIX文のメンバー・リストには、市場ディメンションに属する1つの疎メンバーCaliforniaのみが含まれています。

FIX文の既存のブロック数によって、トレースするセルが計算される回数が決まります。 この例では、計算はCaliforniaの既存のすべての疎メンバーの組合せを反復します。 これらの各組合せはブロックを表します。

計算の完了後、次のトレース情報がログに記録されて表示されます。

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 1)
Previous value: 840.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00

Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

[...calc iterations 4-7 are omitted from example...]

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values: 
	[400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

この計算トレース・ログでは、トレースされたセルでの計算の動作に関する次のインサイトが提供されています。

  • トレースされたセルが複数回にわたって計算され、セル値が毎回新しい値で上書きされました(報告されたセルの更新数が8で止まっています)。

  • 計算前のセルの値は840.00でした。

  • 各計算について、依存する値と新しい値が表示されます。 依存する値は、FIX文のメンバー式から取得されます。

  • すべての計算が完了した後の、トレースされたセルの最終値は9ですが、これは製品"400-20"->Californiaの値を10で割ったものを示しています。

  • Salesのメンバー式を含む計算スクリプトの91-93行目で、更新された値が計算されています。

反復される各ブロックについて、次の式を使用してSalesが計算されます。

"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10

この式には、左側に疎メンバーが含まれており、実際の計算ブロックが初期FIXブロックとは異なるものになる可能性があります。 たとえば、計算で"California"->"100-20"が反復される場合、実際には計算は"California"->"100-10"で実行されます。

Block from FIX scopeおよびActual block used in calculationというタイトルのトレース・ログ・エントリは、FIX文のブロックとメンバー式で表されるブロックの間に差異がある場合にのみ出力されます。 これらのログ・エントリには、重複した計算がある理由が示されることがあり、計算スクリプトのデバッグに役立ちます。