高度な手法: 変数に格納された値の参照
現在のユーザー名をタイトルに表示する分析を作成する場合があります。 これを行うには、変数を参照します。
分析、ダッシュボードおよびアクションで複数の異なるタイプの変数を参照できます: セッション、プレゼンテーション、リクエストおよびグローバル。 コンテンツ作成者は、プレゼンテーション変数、リクエスト変数およびグローバル変数自体を定義できます。
変数のタイプ | 定義場所 | 定義者 | 詳細情報 |
---|---|---|---|
プレゼンテーション |
分析およびダッシュボードのプロンプト |
コンテンツ作成者 |
プレゼンテーション変数について |
リクエスト |
分析およびダッシュボードのプロンプト |
コンテンツ作成者 |
リクエスト変数について |
グローバル |
分析 |
管理者 |
「グローバル変数について」および「グローバル変数の作成」 |
セッション変数について
セッション変数は、ユーザーがサインインすると初期化されます。
これらの変数は、各ユーザーの参照セッションの間存在し、ユーザーがブラウザを閉じるかサインアウトすると、期限切れになります。 セッション変数には2つのタイプがあります: システムおよび非システム。
システム・セッション変数
レポートおよびダッシュボードで使用できるいくつかのシステム・セッション変数があります。
システム・セッション変数には予約名があるため、他の種類の変数には使用できません。
システム・セッション変数 | 説明 | 例S QL問合せ値(変数ダイアログ) |
---|---|---|
PORTALPATH |
ユーザーがサインインしたときに表示されるデフォルトのダッシュボードを示します(サインイン後にこのプリファレンスを上書きできます)。 |
ユーザーがサインインしたときに'mydashboard'を表示するには:
|
TIMEZONE |
ユーザーがサインインするときのデフォルトのタイムゾーンを指定します。 ユーザーのタイム・ゾーンは通常、ユーザーのプロファイルから移入されます。 ユーザーは、プリファレンス(My Account)を使用してデフォルトのタイムゾーンを変更できます。 |
ユーザーがサインインしたときにタイムゾーンを設定するには:
|
DATA_TZ |
データの元のタイム・ゾーンからのオフセットを指定します。 この変数を使用すると、ユーザーが適切なゾーンを表示できるようにタイム・ゾーンを変換できます。 |
時間データを東部標準時間(EST)に変換するには:
この例はグリニッジ標準時(GMT)を意味 - 5時間 |
DATA_DISPLAY_TZ |
データを表示するタイムゾーンを指定します。 |
東部標準時間(EST)を表示するには:
この例はグリニッジ標準時(GMT)を意味 - 5時間 |
リポジトリ変数について
リポジトリ変数は、いつでも1つの値を持つ変数です。
リポジトリ変数は静的または動的です。 静的リポジトリ変数には保持される値があり、管理者が変更するまで変更されません。 動的リポジトリ変数には、問合せから返されたデータによってリフレッシュされる値が格納されます。
プレゼンテーション変数について
プレゼンテーション変数は、列プロンプトまたは変数プロンプトを作成する過程で作成できる変数です。
タイプ | 説明 |
---|---|
列プロンプト |
カラム・プロンプトの一部として作成されたプレゼンテーション変数はカラムに関連付けられ、それが取得できる値はカラム値から取得されます。 列プロンプトの一部としてプレゼンテーション変数を作成するには、「新規プロンプト」ダイアログで「変数の設定」フィールドで「プレゼンテーション変数」を選択する必要があります。 「変数名」フィールドに変数の名前を入力します。 |
変数プロンプト |
変数プロンプトの一部として作成されたプレゼンテーション変数は、どの列にも関連付けられず、使用できる値を定義します。 変数プロンプトの一部としてプレゼンテーション変数を作成するには、「新規プロンプト」ダイアログで「プロンプト」フィールドで「プレゼンテーション変数」を選択する必要があります。 「変数名」フィールドに変数の名前を入力します。 |
プレゼンテーション変数の値は、同時に作成された列プロンプトまたは変数プロンプトによって移入されます。 つまり、ユーザーが列プロンプトまたは変数プロンプトで1つ以上の値を選択するたびに、プレゼンテーション変数の値が、ユーザーが選択した値に設定されます。
リクエスト変数について
リクエスト変数を使用すると、セッション変数の値はオーバーライドできますが、オーバーライドできるのは、列プロンプトから開始されたデータベース・リクエストの間のみです。 リクエスト変数は、列プロンプトの作成過程で作成できます。
次のいずれかのタイプのダッシュボード・プロンプトを作成する過程の一部として、リクエスト変数を作成できます:
-
カラム・プロンプトの一部として作成されるリクエスト変数はカラムと関連付けられ、とり得る値はカラム値からの値です。
列プロンプトの一部としてリクエスト変数を作成するには、「新規プロンプト」ダイアログで「変数の設定」フィールドで「リクエスト変数」を選択する必要があります。 「変数名」フィールドに、オーバーライドするセッション変数の名前を入力します。
-
変数プロンプトの一部として作成されるリクエスト変数は、どの列にも関連付けられず、使用できる値を定義します。
変数プロンプトの一部としてリクエスト変数を作成するには、「新規プロンプト」ダイアログ(または「プロンプトの編集」ダイアログ)で、「プロンプト」フィールドで「リクエスト変数」を選択する必要があります。 次に、オーバーライドするセッション変数の名前を「変数名」フィールドに入力します。
リクエスト変数の値は、作成された列プロンプトによって移入されます。 つまり、ユーザーがカラム・プロンプトで値を選択するたびに、リクエスト変数の値はユーザーが選択した値に設定されます。 ただし、この値は、ユーザーがプロンプトの「進む」ボタンを押した時点から分析結果がダッシュボードに戻るまで有効です。
特定のシステム・セッション変数(USERGUIDやROLESなど)は、リクエスト変数でオーバーライドできません。 DATA_TZやDATA_DISPLAY_TZ (タイムゾーン)などの他のシステム・セッション変数は、Oracle BI Administration Toolで構成されている場合はオーバーライドできます。
文字列および数値リクエスト変数のみが複数の値をサポートします。 他のすべてのデータ型は、最初の値のみを渡します。
グローバル変数について
グローバル変数は、特定のデータ型と値を組み合せて作成された列です。 値には、日付、日付と時間、数値、テキストおよび時間があります。
グローバル変数は分析の実行時に評価され、グローバル変数の値が適切に置換されます。
BIサービス管理者ロールを持つユーザーのみが、グローバル変数を管理(追加、編集および削除)できます。
「列式の編集」ダイアログを使用して、分析の作成プロセス中にグローバル値を作成します。 グローバル変数はカタログに保存されるため、特定のテナント・システムに属する他のすべての分析で使用できます。
変数を参照する構文
変数は、分析およびダッシュボードで参照できます。
変数の参照方法は、実行するタスクによって異なります。 ダイアログにフィールドが表示されるタスクでは、フィルタ定義で変数を参照するなど、変数のタイプと名前のみを指定する必要があります(構文全体ではありません)。
タイトル・ビューで変数を参照するなど、その他のタスクでは、変数の構文を指定します。 使用する構文は、次の表で説明する変数のタイプによって異なります。
タイプ | 構文 | 例 |
---|---|---|
セッション |
@{biServer.variables['NQ_SESSION.variablename']} variablenameは、セッション変数の名前(DISPLAYNAMEなど)です。 |
@{biServer.variables['NQ_SESSION.SalesRegion]} |
リポジトリ |
@{biServer.variables.variablename} または @{biServer.variables['variablename']} ここで、variablenameはリポジトリ変数の名前です(例: prime_begin) |
@{biServer.variables.prime_begin} または @{biServer.variables['prime_begin']} |
プレゼンテーションまたはリクエスト |
@{variables.variablename}[format]{defaultvalue} または @{「スコープ」.variables[' variablename ']} ここで: variablenameは、プレゼンテーション変数またはリクエスト変数の名前です(例: MyFavoriteRegion)。 (オプション) formatは、変数のデータ型に依存する書式マスクです(例:#、##0、MM/DD/YY hh:mm:ss)。 (書式はデフォルト値には適用されません。) (オプション) defaultvalueは、variablenameで参照される変数が移入されていない場合に使用される値を示す定数または変数参照です。 「スコープ」は、変数の修飾子を識別します。 変数が複数レベル(分析、ダッシュボード・ページおよびダッシュボード)で使用され、特定の値にアクセスする場合は、スコープを指定する必要があります。 (スコープを指定しない場合、優先順位は分析、ダッシュボード・ページおよびダッシュボードです。) 複数の値を設定できるプレゼンテーション変数があるダッシュボード・プロンプトを使用する場合、構文は列タイプによって異なります。 複数の値がカンマ区切りの値に書式設定されるため、書式設定句は、カンマで結合される前に各値に適用されます。 |
@{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")
プレゼンテーション変数
次のガイドラインを使用して、式でプレゼンテーション変数を参照できます。
プレゼンテーション変数を参照する場合は、次の構文を使用します:
@{variablename
}{defaultvalue
}
ここで、variablenameはプレゼンテーション変数の名前で、defaultvalue (オプション)は、variablenameによって参照される変数が移入されていない場合に使用される値を示す定数または変数参照です。
変数を文字列に型キャスト(つまり変換)したり、複数の変数を含めるには、変数全体を一重引用符で囲みます。次に例を示します:
'@{user.displayName}'
@記号の後に {がない場合は、@記号として処理されます。 複数の値を設定できるプレゼンテーション変数を使用する場合、列タイプによって構文が異なります。
有効なSQL文を生成するには、指定した列タイプのSQLで次の構文を使用します:
-
テキスト - (@{variablename}['@']{' defaultvalue '})
-
数値 - (@{variablename}{defaultvalue})
-
Date-time - (@{variablename}{timestamp 'defaultvalue'})
-
日付(日付のみ) - (@{variablename}{date ' defaultvalue '})
-
時間(時間のみ) - (@{variablename}{time ' defaultvalue '})
たとえば:
'@{user.displayName}'