現在のユーザー名をタイトルに表示する分析を作成する場合があります。これは、変数を参照することによって行えます。
分析、ダッシュボードおよびアクション内で、複数の異なるタイプの変数(セッション、セマンティック・モデル(リポジトリ)、プレゼンテーション、リクエストおよびグローバル)を参照できます。コンテンツ作成者は、プレゼンテーション、リクエストおよびグローバル変数を定義できますが、その他のタイプ(セッションおよびセマンティック・モデル(リポジトリ))はセマンティック・モデル内で定義されます。
ノート: Oracle Analyticsでは、データ・ソースの接続資格証明の:userと:passwordの変数はサポートされません。
変数のタイプ | 定義場所 | 定義者 | 詳細情報 |
---|---|---|---|
セッション
|
セマンティック・モデル |
データ・モデル作成者 |
セッション変数について |
セマンティック・モデル(リポジトリ)
|
セマンティック・モデル |
データ・モデル作成者 |
セマンティック・モデル(リポジトリ)変数について |
プレゼンテーション |
分析とダッシュボードのプロンプト |
コンテンツ作成者 |
プレゼンテーション変数について |
リクエスト |
分析とダッシュボードのプロンプト |
コンテンツ作成者 |
リクエスト変数について |
グローバル |
分析 |
管理者 |
グローバル変数についておよびグローバル変数の作成 |
セッション変数は、ユーザーがサインインすると初期化されます。
これらの変数は、各ユーザーの参照セッションの間存在し、ユーザーがブラウザを閉じるかサインアウトすると、期限切れになります。セッション変数には、システムとシステム以外の2つのタイプがあります。
レポートおよびダッシュボードで使用できるいくつかのシステム・セッション変数があります。
システム・セッション変数には予約名があるため、他の種類の変数には使用できません。
システム・セッション変数 | 説明 | SQL問合せ値の例(変数ダイアログ) |
---|---|---|
PORTALPATH |
ユーザーがサインインしたときに表示されるデフォルトのダッシュボードを示します(ユーザーはサインイン後にこのプリファレンスをオーバーライドできます)。 |
ユーザーがサインインしたときにmydashboardを表示するには: select ‘/shared/_portal/mydashboard’ from dual; |
TIMEZONE |
ユーザーがサインインしたときのデフォルトのタイムゾーンを指定します。 ユーザーのタイムゾーンは、通常、ユーザーのプロファイルから移入されます。ユーザーは、プリファレンス(「マイ・アカウント」)からデフォルトのタイムゾーンを変更できます。 |
ユーザーがサインインしたときにタイムゾーンを設定するには: select ‘(GMT-08:00) Pacific Time (US & Canada)’ from dual; |
DATA_TZ |
データの元のタイムゾーンからのオフセットを指定します。 この変数を使用すると、適切なタイムゾーンがユーザーに表示されるように、ゾーンを変換できます。 |
時間データを東部標準時(EST)に変換するには: select ‘GMT-05:00’ from dual; この例は、グリニッジ標準時(GMT) - 5時間を意味します。 |
DATA_DISPLAY_TZ |
データを表示するタイムゾーンを指定します。 |
東部標準時(EST)を表示するには: select ‘GMT-05:00’ from dual; この例は、グリニッジ標準時(GMT) - 5時間を意味します。 |
セマンティック・モデル(リポジトリ)変数は、どの時点でも1つの値を持つ変数です。
セマンティック・モデル(リポジトリ)変数は静的または動的に設定できます。静的セマンティック・モデル(リポジトリ)変数には、管理者が変更するまで存続して変わらない値が格納されます。動的セマンティック・モデル(リポジトリ)変数には、問合せから返されたデータによってリフレッシュされる値が格納されます。
プレゼンテーション変数は、列プロンプトまたは変数プロンプトを作成する際に作成します。
タイプ | 説明 |
---|---|
列プロンプト |
列プロンプトの一部として作成されるプレゼンテーション変数は列と関連付けられ、とり得る値は列値からの値です。 プレゼンテーション変数を列プロンプトの一部として作成するには、「新規プロンプト」ダイアログの「変数の設定」フィールドで「プレゼンテーション変数」を選択する必要があります。「変数名」フィールドに変数の名前を入力します。 |
変数プロンプト |
変数プロンプトの一部として作成されるプレゼンテーション変数は列に関連付けられないため、とり得る値はユーザーが定義します。 プレゼンテーション変数を変数プロンプトの一部として作成するには、「新規プロンプト」ダイアログの「プロンプト対象」フィールドで「プレゼンテーション変数」を選択する必要があります。「変数名」フィールドに変数の名前を入力します。 |
プレゼンテーション変数の値は、同時に作成された列プロンプトまたは変数プロンプトによって移入されます。つまり、ユーザーが列プロンプトまたは変数プロンプトで1つ以上の値を選択するたびに、プレゼンテーション変数の値が、ユーザーが選択した値に設定されます。
リクエスト変数を使用すると、セッション変数の値をオーバーライドできますが、オーバーライドできるのは、列プロンプトから開始されたデータベース・リクエストの間のみです。リクエスト変数は、列プロンプトの作成過程で作成できます。
次のいずれかのタイプのダッシュボード・プロンプトを作成する過程の一部として、リクエスト変数を作成できます。
列プロンプトの一部として作成されるリクエスト変数は列と関連付けられ、とり得る値は列値からの値です。
リクエスト変数を列プロンプトの一部として作成するには、「新規プロンプト」ダイアログの「変数の設定」フィールドで「リクエスト変数」を選択する必要があります。「変数名」フィールドに、オーバーライドするセッション変数の名前を入力します。
変数プロンプトの一部として作成されるリクエスト変数は列に関連付けられないため、ユーザーがとり得る値を定義します。
リクエスト変数を変数プロンプトの一部として作成するには、「新規プロンプト」ダイアログ(または「プロンプトの編集」ダイアログ)の「プロンプト対象」フィールドで「リクエスト変数」を選択する必要があります。次に、オーバーライドするセッション変数の名前を「変数名」フィールドに入力します。
リクエスト変数の値は、同時に作成された列プロンプトによって移入されます。つまり、ユーザーが列プロンプトで値を選択するたびに、リクエスト変数の値が、ユーザーが選択した値に設定されます。ただし、値が有効なのは、ユーザーがプロンプトの「実行」ボタンを押した時点から、分析結果がダッシュボードに返されるまでです。
特定のシステム・セッション変数(USERGUID、ROLESなど)をリクエスト変数でオーバーライドすることはできません。DATA_TZ、DATA_DISPLAY_TZ (タイムゾーン)などのその他のシステム・セッション変数は、モデル管理ツールで構成されている場合、オーバーライドできます。
複数の値がサポートされるのは、文字列および数値のリクエスト変数のみです。その他のデータ型では最初の値のみが渡されます。
グローバル変数は、特定のデータ型と値の組合せによって作成される列です。値には、「日付」、「日付と時間」、「数値」、「テキスト」および「時間」があります。
グローバル変数は分析の実行時に評価され、グローバル変数の値が適切に置き換えられます。
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} または @{scope.variables['variablename']} ここで: variablenameは、プレゼンテーション変数またはリクエスト変数の名前です(MyFavoriteRegionなど)。 (オプション)formatは、変数のデータ型によって異なる書式マスクです(#、##0、MM/DD/YY hh:mm:ssなど)。(書式はデフォルト値には適用されないことに注意してください。) (オプション)defaultvalueは、variablenameで参照される変数に値が入っていない場合に使用される値を示す定数または変数の参照です。 scopeは、変数の修飾子を識別します。変数が複数のレベル(分析ダッシュボード・ページおよびダッシュボード)で使用され、特定の値にアクセスする場合、有効範囲を指定する必要があります。(有効範囲を指定しない場合、分析、ダッシュボード・ページ、ダッシュボードの順に優先されます。) 複数の値を設定できるプレゼンテーション変数が指定されたダッシュボード・プロンプトを使用する際には、列タイプによって構文が異なります。複数の値がカンマ区切りの値に書式設定されるため、書式設定句は、カンマで結合される前に各値に適用されます。 |
@{variables.MyFavoriteRegion}{EASTERN REGION} または @{dashboard.MyFavoriteRegion}{EASTERN REGION} または @{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のECMAスクリプト言語仕様に準拠している必要があります。名前は200文字以内にする必要があります。埋込みスペース、予約語および特殊文字は使用できません。JavaScripting言語要件に精通していない場合は、サード・パーティのリファレンスを参照してください。 |
@{global.variables.gv_date_n_time} |
式で変数を参照することもできます。式で変数を参照するためのガイドラインは、次の各トピックに記載されています。
式でセッション変数を参照するには、次のガイドラインを使用できます。
例:
"Market"."Region"=VALUEOF("NQ_SESSION"."SalesRegion")
式でプレゼンテーション変数を参照するには、次のガイドラインを使用できます。
プレゼンテーション変数を参照する場合は、次の構文を使用します。
@{variablename
}{defaultvalue
}
variablenameは、プレゼンテーション変数の名前で、defaultvalue(オプション)はvariablenameで参照される変数に値が入っていない場合に使用される値を示す定数または変数の参照です。
変数を文字列に型変換(つまり、変換)する場合や、複数の変数を含める場合は、次のように、変数全体を一重引用符で囲みます:
'@{user.displayName}'
@マークの後ろに{がない場合は、@マークとして処理されます。複数の値を設定できるプレゼンテーション変数を使用する際には、列タイプによって構文が異なります。
有効なSQL文を生成するには、各列タイプのSQLで次の構文を使用します。
テキスト - (@{variablename}['@']{'defaultvalue'})
数値 - (@{variablename}{defaultvalue})
日時 — (@{variablename}{timestamp 'defaultvalue'})
日付(日付のみ) — (@{variablename}{date 'defaultvalue'})
時間(時間のみ) — (@{variablename}{time 'defaultvalue'})
例:
'@{user.displayName}'