条件付きテスト

単一の条件付きテストまたは一連の条件付きテストを使用するEssbase式を定義することで、計算のフローを制御できます。フロー・コマンドとともに、テストの結果に基づいて、TRUEまたはFALSE (それぞれ1、0)を戻すブール関数を使用できます。

IFおよびENDIFコマンドにより、条件ブロックが定義されます。IFとENDIFの間にある式は、テストでTRUE (1)が戻された場合のみ実行されます。テストでFALSE (0)が戻された場合、ELSEおよびELSEIFコマンドを使用して、代替アクションを指定できます。各ELSEコマンドに続く式は、前のテストでFALSE (0)が戻された場合のみ実行されます。各ELSEIFコマンドに続く条件は、前のIFコマンドでFALSE (0)が戻された場合にのみテストされます。

計算スクリプトで条件式を使用するときは、この項の例で示すように、それを丸カッコで囲み、データベース・アウトラインのメンバーと関連付けます。

IFコマンドとともに、条件付きテストの結果に基づいて、TRUEまたはFALSE (それぞれ1、0)を戻す関数を使用できます。これらの関数は、ブール関数と呼ばれます。

ブール関数を使用して、使用する式を決定します。この決定は、現在のメンバーの組合せの特性に基づきます。たとえば、特定の計算をProductディメンション内の入力データを含むメンバーのみに制限するには、@ISLEV(Product,0)に基づいたIFテストの後に計算を配置します。

関数パラメータのいずれかが@ISMBR(Sales -> Budget)のようなディメンション間メンバーである場合、TRUE (1)の値が戻されるには、ディメンション間メンバーのすべての部分が現在のセルのプロパティと一致している必要があります。

次のブール関数で条件を指定します。

表17-3 条件をテストするブール関数のリスト

関数 条件

@ISACCTYPE

指定した勘定科目タグが現在のメンバーに付いている(費用タグなど)

@ISANCEST

現在のメンバーが、指定したメンバーの祖先である

@ISIANCEST

現在のメンバーが、指定したメンバーの祖先であるか、指定したメンバー自体である

@ISCHILD

現在のメンバーが、指定したメンバーの子である

@ISICHILD

現在のメンバーが、指定したメンバーの子であるか、指定したメンバー自体である

@ISDESC

現在のメンバーが、指定したメンバーの子孫である

@ISIDESC

現在のメンバーが、指定したメンバーの子孫であるか、指定したメンバー自体である

@ISGEN

指定したディメンションの現在のメンバーが指定した世代に属している

@ISLEV

指定したディメンションの現在のメンバーが指定したレベルに属している

@ISMBR

現在のメンバーが、指定したメンバーのいずれかと一致する

@ISPARENT

現在のメンバーが、指定したメンバーの親である

@ISIPARENT

現在のメンバーが、指定したメンバーの親であるか、指定したメンバー自体である

@ISSAMEGEN

(指定したメンバーと同じディメンションの)現在のメンバーが、指定したメンバーと同じ世代に属している

@ISSAMELEV

(指定したメンバーと同じディメンションの)現在のメンバーが、指定したメンバーと同じレベルに属している

@ISSIBLING

現在のメンバーが、指定したメンバーの兄弟である

@ISISIBLING

現在のメンバーが、指定したメンバーの兄弟であるか、指定したメンバー自体である

@ISUDA

指定したディメンションの現在のメンバーに対して、指定したUDAが存在する

データベース・アウトラインに対する式を配置する場合は、計算フローを制御するために、IF、ELSE、ELSEIFおよびENDIFコマンドとブール関数のみを使用できます。計算スクリプト内では、その他の制御コマンドも使用できます。

計算スクリプトを開発する方法と、これらを使用してEssbaseによるデータベース計算を制御する方法の詳細は、「ブロック・ストレージ・キューブの計算スクリプトの開発」を参照してください。