条件付きテストの例
データ依存性を評価するために計算が必要な場合、Essbase式で条件付きテストを使用します。
たとえば、次の式をキューブ・アウトラインのコミッション・メンバーに適用して、売上が500000を超える場合に売上の1%でコミッションを計算できます。
IF(Sales > 500000)
Commission = Sales * .01;
ENDIF;この式を計算スクリプト内に配置する場合は、式とCommissionメンバーを次のように関連付ける必要があります。
Commission (IF(Sales > 500000)
Commission = Sales * .01;
ENDIF;)Essbaseはキューブを循環して、次の計算を実行します:
-
IF文によって、現在のメンバーの組合せに対するSalesの値が500000を超えているかどうかが確認されます。
-
Salesが500000を超えている場合は、Essbaseによって、Salesの値に0.01が乗算され、結果がCommissionに置かれます。
次の例の式では、現在のメンバーの祖先をテストした後、適切なPayrollの計算式が適用されます。
IF(@ISIDESC(East) OR @ISIDESC(West))
Payroll = Sales * .15;
ELSEIF(@ISIDESC(Central))
Payroll = Sales * .11;
ELSE
Payroll = Sales * .10;
ENDIF;この式を計算スクリプト内に配置する場合は、式とPayrollメンバーを次のように関連付ける必要があります。
Payroll(IF(@ISIDESC(East) OR @ISIDESC(West))
Payroll = Sales * .15;
ELSEIF(@ISIDESC(Central))
Payroll = Sales * .11;
ELSE
Payroll = Sales * .10;
ENDIF;)Essbaseはデータベースを一巡して、次の計算を実行します:
-
IF文では、@ISIDESC関数を使用して、Marketディメンションの現在のメンバーがEastまたはWestのいずれかの子孫であるかどうかを確認します。
-
Marketディメンションの現在のメンバーがEastまたはWestの子孫である場合は、EssbaseによってSalesの値に0.15が乗算されてから、次のメンバーの組合せが処理されます。
-
現在のメンバーがEastまたはWestの子孫でない場合は、ELSEIF文で@ISIDESC関数を使用して、現在のメンバーがCentralの子孫であるかどうかを確認します。
-
Marketディメンションの現在のメンバーがCentralの子孫である場合は、EssbaseによってSalesの値に0.11が乗算されてから、次のメンバーの組合せが処理されます。
-
現在のメンバーがEast、WestおよびCentralの子孫でない場合は、EssbaseによってSalesの値に0.10が乗算されてから、次のメンバーの組合せが処理されます。
「多次元計算の概念」も参照してください。