この章の情報は、ブロック・ストレージ・データベースのみに適用され、集約ストレージ・データベースとは関係がありません。
関連項目:
この章のすべての例は、Sample.Basicデータベースに基づいています。
この章で参照される関数の詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。
式により、データベース・アウトライン内のメンバー間の関係が計算されます。式を使用して、次のことができます:
データベース・アウトライン内のメンバーに式を適用。データベース計算の精度やパフォーマンスを慎重に制御する必要がない場合は、この方法を使用します。この方法では、式のサイズは64KB未満に制限されます。
式での関数の使用を参照してください。
計算スクリプトに式を挿入。データベース計算を慎重に制御する必要がある場合、この方法を使用します。
計算スクリプトでの式の使用を参照してください。
図113は、Sample.Basicデータベースのメジャー次元を示しています。Margin %、Profit %およびProfit per Ounceメンバーは、それぞれに適用された式を使用して計算されます。
データベース・アウトライン内のメンバーに適用された式は、ユーザーが次のアクションを実行するときにEssbaseで計算されます:
式(メンバーが登録されている次元のCALC DIMなど)を含んでいるメンバー、またはメンバー自体を計算する計算スクリプトを実行するとき。ブロック・ストレージ・データベース用の計算スクリプトの作成。を参照してください。
計算スクリプト内の式は、Essbaseによって計算スクリプト内で検出された時点で計算されます。
動的計算済メンバーに式が関連付けられている場合、その式はユーザーがデータ値を要求した時点でEssbaseによって計算されます。計算スクリプト内では、動的計算済メンバーを計算したり、動的計算済メンバーを式の計算のターゲットに指定したりすることはできません。データ値の動的計算。を参照してください。
データベース・アウトラインや計算スクリプトに含まれる式内で動的計算済メンバーを使用すると、計算パフォーマンスが大幅に低下します。これは、Essbaseで動的計算を行うために通常の計算を中断するためです。
データベース・アウトラインに適用する式の中では、代替変数は使用できません。式での代替変数の使用を参照してください。
アウトライン・エディタの「メンバーのプロパティ」ダイアログ・ボックス内のタブになっている式エディタを使用して、式を作成します。式テキスト領域に式を直接入力するか、式エディタのUI機能を使用して式を作成します。
式はプレーン・テキストです。必要に応じて、好みのテキスト・エディタで式を作成し、それを式エディタに貼り付けてもかまいません。
Oracle Essbase Administration Services Online Helpの「アウトライン内の式の作成および編集」を参照してください。
式での関数の使用と、Oracle Essbase Administration Services Online Helpの「アウトライン内の式の作成および編集」を参照してください。
式構文の検査を参照してください。
Oracle Essbase Administration Services Online Helpの「アウトライン内の式の作成および編集」を参照してください。
Oracle Essbase Administration Services Online Helpの「アウトラインの保存」を参照してください。
Margin % Sales;
保存済のアウトライン・メンバー名のみを使用します。メンバー名として代替変数を使用する場合、代替変数値が保存済のアウトライン・メンバー名になっている必要があります。
メンバー名が次のいずれかの条件に該当する場合は、そのメンバー名を二重引用符(" ")で囲みます:
"Opening Inventory" = "Ending Inventory" - Sales + Additions;
二重引用符で囲む必要があるメンバー名の完全なリストは、計算スクリプト、レポート・スクリプト、式、フィルタ、代替変数値および環境変数値での命名規則を参照してください。
式中の各IFステートメントは、ENDIFステートメントで終わります。
たとえば、次の式には単純なIF...ENDIFステートメントが含まれます。この式をデータベース・アウトライン内のCommissionメンバーに適用できます:
IF(Sales < 100) Commission = 0; ENDIF;
別のIFステートメント内にネストされたIFステートメントを使用している場合には、各IFステートメントをENDIFステートメントで終了します。例:
"Opening Inventory" (IF (@ISMBR(Budget)) IF (@ISMBR(Jan)) "Opening Inventory" = Jan; ELSE "Opening Inventory" = @PRIOR("Ending Inventory"); ENDIF; ENDIF;)
ELSEステートメントまたはELSEIFステートメントは、ENDIFで終わらせる必要はありません。例:
IF (@ISMBR(@DESCENDANTS(West)) OR @ISMBR(@DESCENDANTS(East) Marketing = Marketing * 1.5; ELSEIF(@ISMBR(@DESCENDANTS(South))) Marketing = Marketing * .9; ELSE Marketing = Marketing * 1.1; ENDIF;
式を記述するとき、式エディタの構文チェッカを使用して構文を検査できます。式構文の検査を参照してください。
表47に、式で使用できる演算子のタイプをリストします:
表 47. 演算子タイプのリスト
たとえば、値の加算、減算、乗算または除算を実行できます。 算術演算を参照してください。 | |
たとえば、IFステートメントを使用して指定の条件をテストできます。 条件テストを参照してください。 | |
たとえば、指定の地区の指定の製品の売上の値をポイントできます。 次元間にわたるメンバーの組合せの操作を参照してください。 |
#MISSING、ゼロおよびその他の値での演算子の使用方法は、『Oracle Essbaseテクニカル・リファレンス』のEssbaseの関数に関する項を参照してください。
California = 120;
この式では、「California」は疎次元のメンバーで、120は定数値です。「California」のすべての存在可能なデータ・ブロックがEssbaseで自動的に作成され、すべてのデータ・セルに値120が割り当てられます。何千ものデータ・ブロックが作成される場合もあります。
疎次元で値が必要な交差のみに定数を割り当てるには、FIXステートメントを使用します。疎次元のメンバーに割り当てられた定数値を参照してください。
疎次元のメンバーに定数以外の値を割り当てるときに、そのメンバーのデータ・ブロックが存在していない場合、Essbaseで「等式によるブロックの作成」を使用可能にするまでは、新しいブロックが作成されません。デフォルトでは、「等式によるブロックの作成」は無効になっています。
たとえば、計算を実行する前には存在していなかったWestのブロックを作成するには、次の式での「等式によるブロックの作成オプション」を有効にする必要があります:
West = California + 120;
注: | データベースに対して「等式によるブロックの作成」が無効で、等式の左側または右側にデータ・ブロックが存在する場合、式によって結果が生成されます。 |
データベース・レベルで「等式によるブロックの作成」を使用可能にして、ブロックが常に生成されるようにできます。または、SET CREATEBLOCKONEQ ON | OFF計算コマンドを使用することで計算スクリプト内でブロック生成を制御できます。
アプリケーションまたはデータベース・レベルで「等式によるブロックの作成」を使用可能にすると、不要なブロックが作成され、計算パフォーマンスに影響が出る場合があります。計算スクリプトを使用してブロックの作成を制御するには、SET CREATEBLOCKONEQ ON | OFF計算コマンドを使用します。疎次元のメンバーに割り当てられた非定数値を参照してください。
式で算術演算を使用して、基本的な等式を作成できます。等式は、データベース・アウトラインまたは計算スクリプト内に含めることができます。
member = mathematical_operation ;
memberは、データベース・アウトラインのメンバー名です。mathematical_operationは、有効な算術演算です。
次の例では、Essbaseはデータベースのデータを循環しながら、Sales内の値からCOGS内の値を減算し、結果をMarginに配置します:
Margin = Sales - COGS;
次の例は、データベース・アウトラインおよび計算スクリプトにおける等式の使用方法を示しています。アウトラインでは、次の式をMarkupメンバーに適用します:
(Retail - Cost) % Retail;
Markup = (Retail - Cost) % Retail;
Essbaseはデータベースのデータを循環しながら、Retail内の値からCost内の値を減算し、結果の値をRetailの値のパーセンテージとして計算し、その結果をMarkupに配置します。
Essbaseには、式の構文エラーをユーザーに通知する、Essbaseサーバーベースの式構文検査機能が組み込まれています。たとえば、ユーザーが間違った関数名を入力すると、Essbaseによりそのことが通知されます。カスタム定義のマクロや関数名のリストに対して、不明な名前を検証できます。ユーザーがアウトラインに関連付けられたサーバーやアプリケーションに接続していない場合は、不明な名前を検証するため、Essbaseにより自動的に接続が確立されます。
式のセマンティク・エラーは、構文検査機能では通知できません。セマンティク・エラーは、式が期待どおりに動作しないときに発生します。セマンティク・エラーを見つけるには、計算を実行して、予想どおりの結果が得られるかどうかを確認します。
Essbaseにより、式エディタの下部に構文検査の結果が表示されます。Essbaseで構文エラーが検出されなかった場合は、「エラーはありません」というメッセージが表示されます。
Essbaseで1つ以上の構文エラーが検出された場合は、エラーのある行の行番号とエラーの短い説明が表示されます。たとえば、式の行末文字としてセミコロンを入力しなかった場合、Essbaseにより次のようなメッセージが表示されます:
Error: line 1: invalid statement; expected semicolon
式エディタまたはアウトライン・エディタでの検証で式が承認されても、アウトラインが保存されるときにEssbaseサーバーでセマンティク・エラーが検出された場合は、次のような措置がとられます:
式を修正し、アウトラインを保存すると、メンバー・コメント内のメッセージが削除されます。アウトラインを再度開くと、更新されたコメントが表示されます。
関数は、特別な計算を実行し、メンバーまたはデータ値のセットを戻す事前定義済のルーチンです。表48に、式で使用できる関数のタイプをリストします:
表 48. 関数タイプのリスト
条件テストを実行できるように、TRUE(1)またはFALSE(0)の値を戻します。 たとえば、@ISMBR関数では、現在のメンバーが指定されたメンバーと一致するかどうかを判断できます。 条件テストを参照してください。 | |
たとえば、@AVG関数を使用して、メンバーのリストの平均値を戻せます。 算術演算を参照してください。 | |
たとえば、@ANCESTVAL関数を使用して、指定したメンバーの組合せの祖先の値を戻せます。 メンバー関係関数を参照してください。 | |
別の関数またはコマンドに対する引数として、メンバーの範囲を宣言します。 たとえば、@SUMRANGE関数を使用して、特定の範囲内のすべてのメンバーの合計を戻せます。 範囲関数を参照してください。 | |
たとえば、@INTEREST関数を使用して、単利を計算できます。また、@PTD関数を使用して、期間累計値を計算できます。 財務関数を参照してください。 | |
メンバーのリストおよび範囲の指定 |
複数のメンバーまたはある範囲のメンバーを指定します。 たとえば、@ISMBR関数では、現在計算中のメンバーが指定のリスト内のメンバーまたは範囲内のメンバーと一致しているかどうかをテストできます。 メンバーのリストおよび範囲の指定を参照してください。 |
たとえば、@ICHILDREN関数を使用して、指定したメンバーとその子を戻せます。 メンバー・リストの生成を参照してください。 | |
文字列の操作 |
メンバー名および次元名の文字列を操作します。 たとえば、名前に接頭辞を追加したり、名前から接尾辞を削除したり、文字列として名前を渡してメンバー名を生成できます。 メンバー名の操作を参照してください。 |
次元間にわたるメンバーの組合せ |
次元間演算子(->)を使用して、特定のメンバー組合せのデータ値をポイントします。 次元間にわたるメンバーの組合せの操作を参照してください。 |
相互依存値 |
同じ次元のメンバーの値を必要とするが、必要な値がまだ計算されていない式の場合。 相互依存値の使用を参照してください。 |
差異および差異のパーセンテージ |
予定値と実績値との差異または差異のパーセンテージを計算します。 実績値と予定値との差異または差異のパーセンテージの計算を参照してください。 |
親レベルで入力される値を、子メンバー全体に割り当てます。同じ次元内の値または複数次元の値を割り当てることができます。 たとえば、@ALLOCATE関数を使用して、親レベルで入力される売上の値を親の子に割り当てることができます。ただし、それぞれの子の割当ては、前年の売上における占有率によって決まります。 値の割当てを参照してください。 | |
データの補整や補間、あるいは今後の値の計算を目的として、データを操作します。 たとえば、@TREND関数を使用して、過去の値に対する曲線近似に基づいて今後の値を計算できます。 予測関数を参照してください。 | |
高度な統計計算を行います。たとえば、@RANK関数を使用して、データ・セット内の指定したメンバーまたは指定した値のランクを計算できます。 統計関数を参照してください。 | |
たとえば、@TODATE関数を使用して、日付文字列を計算式で使用できる数値に変換できます。 日付と時刻関数を参照してください。 | |
Essbaseで式の計算に使用される計算モード(セル、ブロック、ボトムアップおよびトップダウン)を指定します。 計算モード関数を参照してください。 | |
このタイプでは、計算操作用にユーザーが開発した関数を実行できます。このようなカスタム開発関数はJavaプログラミング言語で作成され、Essbase計算機フレームワークにより外部関数として呼び出されます。 カスタム定義関数を参照してください。 |
関数の省略はサポートされていません。一部のコマンドは省略形式でも機能しますが、類似した名前の関数が複数存在する場合、Essbaseで誤った関数が使用される可能性があります。正しい結果が確実に得られるように、完全な関数名を使用してください。 |
単一の条件テストまたは一連の条件テストを行う式を定義すれば、計算のフローを制御できます。
IFおよびENDIFコマンドでは、条件ブロックが定義されます。IFコマンドとENDIFコマンドの間に置かれた式は、テストがTRUE(1)を戻す場合にのみ実行されます。テストがFALSE(0)を戻す場合は、ELSEおよびELSEIFコマンドを使用して代替アクションを指定できます。各ELSEコマンドに続く式は、前のテストがFALSE(0)を戻す場合にのみ実行されます。各ELSEIFコマンドに続く条件は、前のIFコマンドがFALSE(0)を戻す場合にのみテストされます。式の構文の理解を参照してください。
計算スクリプトで条件式を使用するときは、この項の例で示すように、その式を丸カッコで囲み、データベース・アウトラインのメンバーと関連付けます。
IFコマンドとともに、条件テストの結果に基づいて、TRUEまたはFALSE(それぞれ1または0)を戻す関数を使用できます。これらの関数は、ブール関数と呼ばれています。
ブール関数を使用して、使用する式を決定します。この決定は、現在のメンバーの組合せの特性に基づいて行われます。たとえば特定の計算を、入力データを含む製品次元内のメンバーのみに制限するには、計算の前に、@ISLEV(Product,0)に基づいたIFテストを配置します。
関数パラメータのいずれかが、@ISMBR(Sales -> Budget)のような次元間メンバーである場合は、TRUE(1)の値を戻すように、次元間メンバーのすべての部分を現在のセルのプロパティと合わせる必要があります。
表49に、条件を指定するブール型関数をリストします:
データベース・アウトラインに式を配置するときは、IF、ELSE、ELSEIFおよびENDIFコマンドとブール関数のみを使用して、計算フローを制御できます。計算スクリプト内では、その他の制御コマンドも使用できます。
計算スクリプトの作成方法や、計算スクリプトを使用してEssbaseによるデータベース計算を制御する方法については、ブロック・ストレージ・データベース用の計算スクリプトの作成。を参照してください。個々のEssbase関数および計算コマンドについては、『Oracle Essbaseテクニカル・リファレンス』を参照してください。
次の式を、データベース・アウトラインのCommissionメンバーに適用できます。
次の例の式では、売上が500000を超える場合、売上の1%の歩合が計算されます:
IF(Sales > 500000) Commission = Sales * .01; ENDIF;
この式を計算スクリプト内に記述する場合は、式とCommissionメンバーを次のように関連付ける必要があります:
Commission (IF(Sales > 500000) Commission = Sales * .01; ENDIF;)
Essbaseでは、データベース内を循環して、次の計算が実行されます:
次の例の式では、現在のメンバーの祖先をテストした後、適切な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関数を使用して、市場次元の現在のメンバーがEastとWestのいずれかの子孫であるかどうかを確認します。
市場次元の現在のメンバーがEastまたはWestの子孫である場合は、Essbaseによって、Salesの値に0.15が乗算されてから、次のメンバーの組合せが処理されます。
現在のメンバーがEastまたはWestの子孫でない場合は、ELSEIFステートメントで@ISIDESC関数を使用して、現在のメンバーがCentralの子孫であるかどうかを確認します。
市場次元の現在のメンバーがCentralの子孫である場合は、Essbaseによって、Salesの値に0.11が乗算されてから、次のメンバーの組合せが処理されます。
現在のメンバーがEast、WestおよびCentralの子孫でない場合は、Essbaseによって、Salesの値に0.10が乗算されてから、次のメンバーの組合せが処理されます。
多次元計算の概念についてを参照してください。@ISIDESC関数については、『Oracle Essbaseテクニカル・リファレンス』を参照してください。
表50に、式内で多くの算術演算を実行できる数学関数をリストします:
表 50. 数学関数のリスト
関数 |
演算 |
---|---|
実績値と予定値との差異または差異のパーセンテージの計算を参照してください。 | |
指定された2つのメンバー間の差異(差分)のパーセンテージを戻す。 実績値と予定値との差異または差異のパーセンテージの計算を参照してください。 |
表51に、関係関数をリストします。この関数では、特定の値を検索するため、Essbaseで現在計算中のメンバーの組合せを使用できます:
表52に、特定の範囲のメンバーに対して式を実行できる範囲関数をリストします:
表53に、式内に財務計算を含めることができる財務関数をリストします:
表 53. 財務関数のリスト
一部の関数では、複数のメンバーまたはメンバーの範囲を指定する必要があります。たとえば、@ISMBR関数では、現在計算中のメンバーが指定のリスト内のメンバーまたは範囲内のメンバーと一致しているかどうかをテストできます。
表54に、メンバーを指定する構文をリストします:
表 54. メンバーのリストおよび範囲を指定する構文
メンバーのリストまたは範囲 |
構文 |
---|---|
例: Mar2001 | |
例: Mar2001, Apr2001, May2001 | |
Jan2000:Dec2000 | |
例: Q1_2000::Q4_2000 | |
メンバー・リストのコンテンツおよび対応する関数のリストはメンバー・リストの生成を参照してください。 | |
例: Q1_97::Q4_98, FY99, FY2000 @SIBLINGS(Dept01), Dept65:Dept73, Total_Dept |
メンバー・リストまたはメンバーの範囲を必要とする関数で、メンバー・リストまたはメンバーの範囲を指定しなかった場合、Essbaseでは、時間のタグが付けられた次元のレベル0メンバーが使用されます。時間のタグが付けられた次元が存在しない場合、Essbaseでエラー・メッセージが表示されます。
メンバー・セット関数では、指定したメンバーまたはメンバー・リストに基づくメンバー・リストを生成できます。表55に、メンバー・セット関数をリストします:
表 55. メンバー・セット関数のリスト
メンバー名を文字列として操作できます。表56に、文字列の操作関数をリストします:
次元間演算子を使用して、特定メンバーの組合せのデータ値を指します。ハイフン(-)と大なり記号(>)を使用して、次元間演算子を作成します。次元間演算子とメンバーの間にはスペースを入力しないでください。
図114は多次元キューブを簡単に例示したもので、JanはX軸の1番目の列、SalesはY軸の4番目および最上部の行、そしてActualはZ軸の1番目の行に存在します。この例では、Sales -> Jan -> Actualが単一のデータ値の交差部です。
次の例では、各市場の各製品に様々な支出を割り当てることにより、次元間演算子の使用方法を示します。すべての市場のすべての製品について、Misc_Expensesの値がわかっています。この式では、Product -> Marketの個々の組合せに、様々な支出(Misc_Expenses)の合計のパーセンテージが割り当てられます。割当ては、各市場の各製品のSalesの値に基づいて行われます。
Essbaseでは、データベース内を循環して、次の計算が実行されます:
次元間演算子を使用すると、パフォーマンスに重大な影響が出る場合があります。最適化のガイドラインについては、次元間演算子の使用を参照してください。
Essbaseでは、同じ次元の特定の範囲のメンバーに対する複数の式を同時に計算することによって、計算パフォーマンスが最適化されます。ただし、一部の式では、同じ次元のメンバーから値を取得する必要があるにもかかわらず、これらの値がEssbaseでまだ計算されていない場合があります。
具体的な例として、キャッシュ・フローの相互依存値があります。この場合は、期首在庫高が、前月の期末在庫高に依存します。
期首在庫高(Opening Inventory)と期末在庫高(Ending Inventory)の値を月ごとに計算する必要があります。表57に示すとおりの結果を得る場合を仮定します:
1月のOpening Inventoryの値がデータベースにロードされるとすると、表57の結果を得るために必要な計算は次のようになります:
1. January Ending = January Opening – Sales + Additions 2. February Opening = January Ending 3. February Ending = February Opening – Sales + Additions 4. March Opening = February Ending 5. March Ending = March Opening – Sales + Additions
必要な計算結果を得るには、複数の相互依存する等式をデータベース・アウトラインの単一のメンバーに適用します。
データベース・アウトラインのOpening Inventoryメンバーに適用される次の式で、正しい値が計算されます:
IF(NOT @ISMBR (Jan)) "Opening Inventory" = @PRIOR("Ending Inventory"); ENDIF; "Ending Inventory" = "Opening Inventory" - Sales + Additions;
計算スクリプト内に式を挿入した場合は、その式を次のようにOpening Inventoryメンバーと関連付ける必要があります:
"Opening Inventory" (IF(NOT @ISMBR (Jan)) "Opening Inventory" = @PRIOR("Ending Inventory"); ENDIF;) "Ending Inventory" = "Opening Inventory" - Sales + Additions;
Essbaseでは、月の値を循環して、次の計算が実行されます:
@VARおよび@VARPER関数を使用して、予定値と実績値との差異または差異のパーセンテージを計算できます。
差異は、正または負の値になることがありますが、これは、会計次元のメンバー(支出アイテムまたは支出外アイテム)に関する差異を計算しているかどうかによって異なります:
Essbaseでは、デフォルトで、メンバーは支出外アイテムであると想定され、これに従って差異が計算されます。
Essbaseにメンバーが支出アイテムであると指定するには:
Oracle Essbase Administration Services Online Helpの「アウトライン内の式の作成および編集」を参照してください。
差異レポート・プロパティの設定を参照してください。
@VARまたは@VARPER関数を使用しているとき、実績値が予定値より低い場合、Essbaseに表示される差異は正の値になります。たとえば、Sample.BasicのTotal Expensesの子は支出アイテムです。シナリオ次元のVarianceおよびVariance%メンバーを使用して、実績値と予定値の差異を計算できます。図115を参照してください。
割当て関数では、親レベルで入力された値を同じ次元または別の次元の子メンバーに割り当てることができます。割当ては、指定された様々な基準に基づいて行われます。
@ALLOCATEを使用した計算スクリプトの例については製品をまたがるコストの割当てを、@MDALLOCATEを使用した計算スクリプトの例については複数の次元での値の割当てを参照してください。
予測関数では、データを補間したり将来の値を計算したりする目的でデータを操作できます。表59に、値を予測する関数をリストします:
表 59. 予測関数のリスト
計算モード関数では、Essbaseで式の計算に使用される計算モードを指定できます。
@CALCMODE: Essbaseで式の計算に使用される計算モード(セル、ブロック、ボトムアップまたはトップダウン)を指定する
式および計算スクリプト内で使用するカスタム定義関数を作成して、Essbase計算スクリプト言語ではサポートされていない計算を実行できます。カスタム定義関数はJavaプログラミング言語で記述し、Essbaseサーバーに登録する必要があります。Essbase計算機フレームワークでは、カスタム定義関数は外部関数として呼び出されます。
カスタム定義関数は、計算スクリプト・エディタの関数ツリー内に表示されます。計算スクリプト・エディタを使用して、カスタム定義関数を選択したり、式に挿入したりできます。
カスタム定義計算関数の作成。を参照してください。
代替変数は頻繁に変化する情報を参照する場合に使用されます。環境変数はユーザー固有のシステム設定のプレースホルダとして使用されます。参照:
代替変数は、期間情報など、定期的に変更される情報のプレースホルダとして機能します。データベース・アウトラインに適用する式の中で、代替変数を使用できます。
アウトラインの計算が完了すると、Essbaseにより、代替変数はユーザーが割り当てた値に置き換えられます。Administration Services、MaxLまたはESSCMDを使用して、代替変数を作成したり、代替変数に値を割り当てたりできます。
代替変数は、サーバー・レベル、アプリケーション・レベルまたはデータベース・レベルで設定できます。Essbaseでは、計算スクリプトを実行しているアプリケーションおよびデータベースから、代替変数にアクセスできる必要があります。代替変数の使用を参照してください。
式で代替変数を使用するには、アンパサンド(&)に続けて代替変数名を入力します。
Essbaseでは、&に続くテキスト文字列はすべて代替変数と見なされます。
たとえば、代替変数UpToCurrがJan:Junと定義されているとします。次の@ISMBR関数を条件付きテストの一部として使用できます:
@ISMBR(&UpToCurr)
Essbaseでは、アウトラインの計算時に、次のように代替変数が置き換えられます:
@ISMBR(Jan:Jun)
アウトライン・メンバー式では、ユーザー固有のシステム設定のプレースホルダとしてシステム環境変数を使用できます。環境変数は、オペレーティング・システム・レベルで定義されているので、Essbaseサーバー上のすべての式で使用できます。
式での環境変数の使用方法は、計算スクリプトで環境変数を使用する場合と同じです。計算スクリプトおよび式での環境変数の使用を参照してください。
注: | 環境変数は、集約ストレージ・アウトライン内のMDXクエリーやメンバー式では使用できません。 |
パーティション・アプリケーションは、複数のEssbaseサーバー、プロセッサまたはコンピュータにスパンできます。
パーティション化の際、ローカル・データベースで使用するときと同様に式を使用できます。ただし、あるデータベース内で使用する式が別のデータベースの値を参照する場合、Essbaseでは、式の計算時にこの2番目のデータベースからデータを取得する必要があります。このため、参照値が最新であることを確認し、データベース計算全体へのパフォーマンスの影響を慎重に検討してください。パーティション用の計算スクリプトの作成を参照してください。
透過パーティションの場合、データ・ターゲットに対して式をどのように使用するかを慎重に検討してください。透過パーティションとメンバー式および透過パーティションのパフォーマンス上の考慮事項を参照してください。
パーティション・アプリケーションの設計とパーティションの作成および管理を参照してください。