機械翻訳について

高度な手法: 変数の格納された値の参照

現在のユーザー名をタイトルに表示する分析を作成するとします。 これは、変数を参照することによって行えます。

分析、ダッシュボードおよびアクションで複数の異なるタイプの変数を参照できます: セッションリポジトリプレゼンテーションリクエストおよびグローバル コンテンツ作成者は、プレゼンテーション、リクエストおよびグローバル変数を自分で定義できますが、他のタイプ(セッションおよびリポジトリ)はデータ・モデルで定義されます。

変数のタイプ 定義場所 定義者 詳細情報

セッション

  • システム

  • 非システム

データ・モデル

データ・モデラー

セッション変数について

リポジトリ

  • 動的

  • 静的

データ・モデル

データ・モデラー

リポジトリ変数について

プレゼンテーション

分析とダッシュボードのプロンプト

コンテンツ作成者

プレゼンテーション変数について

リクエスト

分析とダッシュボードのプロンプト

コンテンツ作成者

リクエスト変数について

グローバル

分析

管理者

「グローバル変数について」「グローバル変数の作成」

セッション変数について

ユーザーがサインインするとセッション変数は初期化されます。

これらの変数は各ユーザーの参照セッションの期間存在し、ユーザーがブラウザを閉じてサインアウトすると失効します。 セッション変数には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時間を意味します。

非システム・セッション変数

システム以外のセッション変数には名前が付けられ、データ・モデルに作成されます。 たとえば、データ・モデラーは、ユーザーのサインイン時にユーザーの販売リージョンの名前に初期化されるSalesRegion変数を作成できます。

モデラーでは、データ・モデラーのこれらのセッション変数の値を定義できます。 「式で使用する変数の作成」を参照してください。

リポジトリ変数について

リポジトリ変数は、どの時点でも1つの値を持つ変数です。 リポジトリ変数は、静的または動的に設定できます。 静的リポジトリ変数には、永続化され、管理者が変更するまで変化しない値が格納されます。 動的リポジトリ変数には、問合せから返されたデータによってリフレッシュされる値が格納されます。

モデラーは、データ・モデラーで動的および静的なリポジトリ変数を定義します。 値の更新オプションによって、変数が動的であるか静的であるかが決まります。 動的変数の場合、値の更新はスケジュール時です。 静的変数の場合、値の更新はなしです。 「式で使用する変数の作成」を参照してください。

プレゼンテーション変数について

プレゼンテーション変数は、列プロンプトまたは変数プロンプトの作成プロセスの一部として作成できる変数です。

タイプ 説明

列プロンプト

列プロンプトの一部として作成されるプレゼンテーション変数は列と関連付けられ、取ることができる値は列値からの値です。

プレゼンテーション変数を列プロンプトの一部として作成するには、新規プロンプトダイアログの変数の設定フィールドでプレゼンテーション変数を選択する必要があります。 変数名フィールドに変数の名前を入力します。

変数プロンプト

変数プロンプトの一部として作成されるプレゼンテーション変数は列に関連付けられず、取ることができる値はユーザーが定義します。

プレゼンテーション変数を変数プロンプトの一部として作成するには、新規プロンプトダイアログのプロンプト対象フィールドでプレゼンテーション変数を選択する必要があります。 変数名フィールドに変数の名前を入力します。

プレゼンテーション変数の値は、同時に作成された列プロンプトまたは変数プロンプトによって移入されます。 つまり、ユーザーが列プロンプトまたは変数プロンプトで1つ以上の値を選択するたびに、プレゼンテーション変数の値がユーザーの選択した値に設定されます。

リクエスト変数について

リクエスト変数を使用すると、セッション変数の値を上書きできます(ただし、列プロンプトから開始されるデータベース・リクエストの期間のみ)。 列プロンプトの作成プロセスの一部としてリクエスト変数を作成できます。

次のタイプのダッシュボード・プロンプトの1つを作成するプロセスの一部として、リクエスト変数を作成できます。

  • 列プロンプトの一部として作成されるリクエスト変数は列と関連付けられ、取ることができる値は列値からの値です。

    列プロンプトの一部としてリクエスト変数を作成するには、新規プロンプトダイアログの変数の設定フィールドで、リクエスト変数を選択する必要があります。 変数名フィールドに、上書きするセッション変数の名前を入力します。

  • 変数プロンプトの一部として作成されるリクエスト変数は列に関連付けられず、取ることができる値はユーザーが定義します。

    変数プロンプトの一部としてリクエスト変数を作成するには、新規プロンプトダイアログ(またはプロンプトの編集ダイアログ)のプロンプト対象フィールドで、リクエスト変数を選択する必要があります。 変数名フィールドに、上書きするセッション変数の名前を入力します。

リクエスト変数の値は、同時に作成された列プロンプトによって移入されます。 つまり、ユーザーが列プロンプトで値を選択するたびに、リクエスト変数の値がユーザーの選択した値に設定されます。 ただし、値は、ユーザーがプロンプトの実行ボタンを押した時点から分析結果がダッシュボードに返されるまでの間のみ有効です。

特定のシステム・セッション変数(USERGUID、ROLESなど)をリクエスト変数でオーバーライドすることはできません。 DATA_TZ、DATA_DISPLAY_TZ (タイムゾーン)などのその他のシステム・セッション変数は、Oracle BI管理ツールで構成されている場合、オーバーライドできます。

複数の値は、文字列および数値のリクエスト変数でのみサポートされます。 その他すべてのデータ型は、最初の値のみを渡します。

グローバル変数について

グローバル変数は、特定のデータ型と値を結合することによって作成される列です。 値には、日付、日時、数値、テキストおよび時刻を指定できます。

グローバル変数は分析の実行時に評価され、グローバル変数の値が適切に置き換えられます。

BIサービス管理者ロールがあるユーザーのみがグローバル変数を管理(追加、編集および削除)できます。

列式の編集ダイアログを使用することによって、分析の作成プロセス中にグローバル値を作成します。 グローバル変数はカタログに保存され、特定のテナント・システム内の他のすべての分析に使用できるようになります。

グローバル変数の作成

グローバル変数として計算を保存し、別の分析で再利用できます。 グローバル変数の作成のみで、データ・モデラーに新しい列を作成する必要はありません。

  1. 分析を編集用に開きます。
  2. 選択された列ペインで、列名の隣のオプションをクリックします。
  3. 式の編集を選択して、列式タブを表示します。
  4. 「変数」をクリックし、「グローバル」を選択します。
  5. 「新規グローバル変数の追加」をクリックします。
  6. 名前に値を入力します。 たとえば、gv_region、date_and_time_global_variable、rev_eastern_region_calc_gvなどです。
    グローバル変数の名前は、変数を参照するときに完全に修飾されている必要があり、そのため、テキストglobal.variablesが接頭辞として付きます。 たとえば、収益を計算するように設定されたグローバル変数は、列式ダイアログに次のように表示されます。

    "Base Facts"."1- Revenue"*@{global.variables.gv_qualified}

  7. タイプおよびに値を入力します。
    • データ型として日付と時間を選択した場合、値は次の例のように入力します: 03/25/2004 12:00:00 AM
    • 式または計算を値として入力する場合は、次の例のようにテキストのデータ型を使用する必要があります: "Base Facts"."1- Revenue"*3.1415
  8. OKをクリックします。 新しいグローバル変数がグローバル変数の挿入ダイアログに追加されます。
  9. 作成した新しいグローバル変数を選択して、OKをクリックします。 列式ペインにグローバル変数が挿入された状態で、列式の編集ダイアログが表示されます。 カスタムの見出しチェック・ボックスは自動的に選択されています。
  10. グローバル変数を割り当てた列に、変数をより正確に反映する新しい名前を入力します。
  11. OKをクリックします。

変数を参照する構文

分析およびダッシュボードで変数を参照できます。

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

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

タイプ 構文

セッション

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

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

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

リポジトリ

@{biServer.variables.variablename}

or

@{biServer.variables['variablename']}

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

@{biServer.variables.prime_begin}

or

@{biServer.variables['prime_begin']}

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

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

or

@{scope.variables['variablename']}

説明:

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

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

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

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

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

@{variables.MyFavoriteRegion}{EASTERN REGION}

or

@{MyFavoriteRegion}

or

@{dashboard.variables['MyFavoriteRegion']}

or

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

or

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

or

(@{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})

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

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

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

例:

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

リポジトリ変数

式でリポジトリ変数を参照するには、次のガイドラインを使用できます。

  • リポジトリ変数をVALUEOF関数の引数として含めます。
  • 変数名を二重引用符で囲みます。
  • 静的リポジトリ変数を名前で参照します。
  • 動的リポジトリ変数を完全修飾名で参照します。

例:

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