変数を参照する構文とは

変数は、分析、ダッシュボード、KPIおよびエージェントで参照できます。変数の参照方法は、実行するタスクによって異なります。

フィルタ定義で変数を参照する場合など、ダイアログにフィールドが表示されるタスクの場合、(完全な構文ではなく)変数のタイプと名前のみ指定する必要があります。

タイトル・ビューでの変数の参照などの他のタスクの場合、変数の構文を指定する必要があります。次の表に示すとおり、使用する構文は変数のタイプによって異なります。

注意:

構文で、アット・マーク(@)の後ろに中カッコ({)がない場合は、アット・マークとして処理されます。
変数のタイプ 構文

セッション

@{biServer.variables['NQ_SESSION.variablename']}

variablename は、セッション変数の名前です(DISPLAYNAMEなど)。

使用できるシステム・セッション変数のリストについては、Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイドシステム・セッション変数についてを参照してください。

@{biServer.variables['NQ_SESSION.USER']}

リポジトリ

@{biServer.variables.variablename}

または

@{biServer.variables['variablename']}

variablenameは、リポジトリ変数の名前です(prime_beginなど)。

@{biServer.variables.prime_begin}

または

@{biServer.variables['prime_begin']}

プレゼンテーションまたはリクエスト

@{variables.variablename}[format]{defaultvalue}

または

@{scope.variables['variablename']}

説明:

  • variablenameは、プレゼンテーション変数またはリクエスト変数の名前です(MyFavoriteRegionなど)。

  • (オプション)formatは、変数のデータ型によって異なる書式マスクです(#、##0、MM/DD/YY hh:mm:ssなど)。(書式はデフォルト値には適用されないことに注意してください。)

  • (オプション)defaultvalueは、variablenameで参照される変数に値が入っていない場合に使用される値を示す定数または変数の参照です。

  • scopeは、変数の修飾子を識別します。変数が複数のレベル(分析ダッシュボード・ページおよびダッシュボード)で使用され、特定の値にアクセスする場合、有効範囲を指定する必要があります。(有効範囲を指定しない場合、分析、ダッシュボード・ページ、ダッシュボードの順に優先されます。)

注意: 複数の値を設定できるプレゼンテーション変数が指定されたダッシュボード・プロンプトを使用する際には、列タイプによって構文が異なります。複数の値がカンマ区切りの値に書式設定されるため、書式設定句は、カンマで結合される前に各値に適用されます。

@{variables.MyFavoriteRegion}{EASTERN REGION}

または

@{MyFavoriteRegion}

または

@{dashboard.variables['MyFavoriteRegion']}

または

(@{myNumVar}[#,##0]{1000})

または

(@{variables.MyOwnTimestamp}[YY-MM-DD hh:mm:ss]{)

または

(@{myTextVar}{A, B, C})

グローバル

@{global.variables.variablename}

variablenameはグローバル変数の名前です(例: gv_region)。グローバル変数を参照する場合は、例に示すように、完全修飾名を使用する必要があります。

注意: グローバル変数の命名規則は、JavaScriptのEMCAスクリプト言語仕様に準拠している必要があります。名前は200文字以内にする必要があります。埋込みスペース、予約語および特殊文字は使用できません。JavaScripting言語要件に精通していない場合は、サード・パーティのリファレンスを参照してください。

@{global.variables.gv_date_n_time}

変数は式で参照することもできます。式で変数を参照するためのガイドラインは、次の表に記載されています。

変数のタイプ ガイドライン

セッション

  • セッション変数をVALUEOF関数の引数として含めます。

  • 変数名を二重引用句で囲みます。

  • セッション変数の前にNQ_SESSIONとピリオドを付けます。

  • NQ_SESSIONの部分とセッション変数名の両方を丸カッコで囲みます。

"Market"."Region"=VALUEOF(NQ_SESSION."SalesRegion")

リポジトリ

  • リポジトリ変数をVALUEOF関数の引数として含めます。

  • 変数名を二重引用句で囲みます。

  • 静的リポジトリ変数を名前で参照します。

  • 動的リポジトリ変数を完全修飾名で参照します。

    動的リポジトリ変数を使用する場合、初期化ブロックの名前とリポジトリ変数を二重引用符で囲み、ピリオドで区切って丸カッコで囲む必要があります。たとえば、Region Securityという名前の初期化ブロックに含まれるREGIONという名前の動的リポジトリ変数を使用する場合、次の構文を使用します:

    VALUEOF("Region Security"."REGION")

    詳細は、Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイドリポジトリ変数についてを参照してください。

CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END

プレゼンテーション

  • 次の構文を使用します。

    @{variablename}{defaultvalue}
    

    variablenameは、プレゼンテーション変数の名前で、defaultvalue(オプション)はvariablenameで参照される変数に値が入っていない場合に使用される値を示す定数または変数の参照です。

  • 変数を文字列に型変換(つまり、変換)するには、次のように、構文全体を一重引用符で囲みます:

    '@{user.displayName}'
    

注意: @マークの後ろに{がない場合は、@マークとして処理されます。

複数の値を設定できるプレゼンテーション変数を使用する際には、列タイプによって構文が異なります。

有効なSQL文を生成するには、各列タイプのSQLで次の構文を使用します。

  • テキスト — (@{variablename}['@']{'defaultvalue'})

  • 数値 — (@{variablename}{defaultvalue})

  • 日時 — (@{variablename}{timestamp 'defaultvalue'})

  • 日付(日付のみ) — (@{variablename}{date 'defaultvalue'})

  • 時間(時間のみ) — (@{variablename}{time 'defaultvalue'})

"Market"."Region"=@{MyFavoriteRegion}{EASTERN REGION}

または

"Products"."P4 Brand"=(@{myTextVar}['@']{BizTech})

または

"Products"."PO Product Number"=(@{myNumVar}{1000})

または

"Sales Person"."E7 Hire Date"=(@{myDateTimeVar}{timestamp '2013-05-16 00:00:01'})

または

"Time"."Total Fiscal Time"=(@{myDateVar}{date '2013-05-16'})

または

"Time"."Time Right Now"=(@{myTimeVar}{time '00:00:01'})

SQL使用時の複数の値(指定されたデータ型内)について:

  • 列タイプがテキストvariablenameからval1、val2およびval3を渡された場合、結果は('val1', 'val2', 'val3')です。

または

  • 列タイプが日付variablenameから2013-08-09および2013-08-10を渡された場合、結果は(date '2013-08-09', date '2013-08-10')です。

または

  • 列タイプが日時variablenameから2013-08-09 00:00:00および2013-08-10 00:00:00を渡された場合、結果は(timestamp '2013-08-09 00:00:00', timestamp '2013-08-10 00:00:00')です。

変数を参照できる特定の領域については、変数を参照できる場所を参照してください。