ユニット・テストの作成
ビジネス・ルールを作成およびデバッグするときは、Oracle Essbaseの計算は、EssbaseがFIX文のブロックを移動するときに、提供された構文を計算する相対参照システムで機能することを覚えておくことが重要です。したがって、ビジネス・ルールを作成またはデバッグする最も簡単な方法は、個々の計算を確認することです。計算中の組合せを選択して、それが機能するかどうかを確認します。そうすることで、ビジネス・ルールが機能しないときに検討する値を少なくでき、ビジネス・ルールをすばやく計算できます。ユニット・テストが正常に計算されたら、より広いデータ・セットでテストできます。
たとえば、製品全体にまたがる分散を特定するために、売上原価の割合を計算する場合、すべての月、すべての年、すべてのシナリオ、すべての部門のCOS Product%
という名前の新しいメンバーに、計算された値を書き込むシナリオを考えます。このシナリオでは、COS Product%
勘定科目のビジネス・ルールを作成して、次に1つの部門、1か月、1年、1つのシナリオの単一ユニット・テストとして、1つの製品を選択する必要があります。
密な勘定科目ディメンションのCOS Product%
メンバーに対して計算する必要がある式は、COS Product% = "Cost of Sales" as a Percentage of "Cost of Sales"->Total Product
です。
次に、特定の組合せ(ユニット)に対してこの計算を実行するために必要なすべての個々のデータ値を含むスプレッドシートを作成できます。このために、コンピュータ・アクセサリである"Sales Central" ->Jan->FY15->Forecast for the "Television".product
を選択できます。
この例では、Televisionには12のCost of Salesの値があり、Total Productsの合計は100になります。つまり、データベース内の値は、COS Accountの9個のProductメンバーに対する値だけで、すべて"Sales Central"のJanuary FY15 Forecastにあります。そのため、クリアされてlevl0データのみを入力したデータベースから開始し、Oracle Smart View for Officeアド・ホック問合せを作成し、必要な次のデータ値を取得します。
この組合せまたはユニット・テストの式は、COS Product% (D3) = = COS (D1) as a Percentage of Total Product COS (D2)
です。つまり、このスプレッドシートに、このビジネス・ルールのユニット・テストに必要なすべてが含まれています。
ユニット・テストを使用したビジネス・ルールの作成
ビジネス・ルールを開始して、COS Product% =
メンバーを、COS
(式の最初の部分)を使用して計算します。ターゲット行(行3)とデータ・ソースの違いを見てください。したがって、COS
(個々のCOS)について、それぞれがTelevision
を識別する3行目と1行目の列Cの違いを見ます。3行目と1行目のメンバーの唯一の違いは、Account
にあります。これは、次のように指定する必要があるだけです。
COS Product% = COS %
式の2番目の部分(Total COS)についても、同じことを行います。この場合は、Productの最上位レベルのCOSです。3行目と2行目にCOSとProductの2つの違いがあるため、Productでも場所を指定して、式を完成させます。
COS Product% = COS % ->Product;
この時点で、このルールを実行すると、次の図に示すように、正しい合計でなく#missing
が取得されます。
(セルD2のTotal COS)が正しい合計を取得するには、データを事前に計算する必要があります。
必要なデータの事前計算
ビジネス・ルールCOS Product% = COS % ->Product;
が、正しい値を返すように必要なデータを事前に計算するには、ルールを次のように変更し、COS
を含める必要があります。
Fix (COS) Agg (Product); EndFix COS Product% = COS % ->Product;