シナリオでモデリングする際、各サンドボックス内で計算するかどうかを決定する必要があります。
データ変更をサンドボックスに送信し、ユーザーが作業を検証できるだけの可能なかぎり少ない数の他のデータを計算します。 これにより、サンドボックス設計のストレージの効率が保持されます。
たとえば、キューブの上位レベル・メンバーがすべて動的計算の場合、計算スクリプトの形での集計は不要です。
上位レベル・メンバーを保管した場合、サンドボックスの計算のスコープを、ユーザーが作業を行うために必要な最小に制限します。
動的階層(密と疎の両方)は自動的に集約され、サンドボックスで変更を加えているユーザーはその変更を即時に確認できます。
Sample_Scenario.Basicブロック・ストレージ・デモ・アプリケーションから例を見てみましょう。
ProductおよびMarketはデータがレベル・ゼロにのみ保管された動的階層であり、シナリオはサンドボックス・ディメンション・メンバーsb0を使用して作成されているとします。
サンドボックスを新しく作成すると、sb0の値はBaseの値と同じになります。 これは、サンドボックス・メンバーが仮想であり、ユーザーが変更を送信するまで基本値を反映するためです。
メンバーsb0のSales->Budget->Jan->Colaデータを変更すると、Baseとsb0の保管済メンバーの組合せを使用することによって、動的サンドボックス・メンバーWest (D10)が即時に正しい合計に集約されることがわかります。
Oregon、UtahおよびNevadaの値は基本サンドボックス・メンバーに保管されています。 CaliforniaおよびWashingtonの値はシナリオ関係者によって送信され、sb0サンドボックス・メンバーに保管されます。 これらの保管された値を使用して、West->Cola->sb0の合計が動的に集約されます。
サンドボックスで計算スクリプトを使用することもできます。 OregonはCaliforniaの80%に予算計上されることになっているとします。 次の計算スクリプトでこれを実行できます。
FIX("Jan", "Budget", "Cola", "Sales") "Oregon"="California"*.8; ENDFIX
シナリオ関係者がWebインタフェースからExcelワークシートを起動してこの計算を実行するとき、sb0は計算されるデフォルトのサンドボックス・メンバーであり、メンバーOregonの値が更新されます。
このビューはシナリオ起動シートからではなく、Smart Viewのプライベート・ビューからであり、Baseとsb0の両方をシートに表示できます。