プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
12c (12.2.1.2.0)
E82973-02
目次へ移動
目次

前
前へ
次
次へ

ADFデータ・ソースからのラベルおよびツールチップの伝播

ラベルやツールチップなど、ユーザー・インタフェース・ヒントをADFデータ・ソースから伝播して、ユーザーが分析を処理する際に表示できます。

翻訳されたラベルやツールチップが、ユーザーのロケールに基づいてADFデータ・ソース内にある場合、データ・ソースに問い合せて、翻訳されたデータにアクセスできます。分析を作成する際に使用するようにプレゼンテーション列を構成するには、管理ツールを使用します。

この項では、次の項目について説明します。

ラベルおよびツールチップとは

UIヒントを伝播すると、Oracle BI管理ツールのプレゼンテーション列でラベルとツールチップをそれぞれカスタム表示名およびカスタム説明として使用できます。

ラベルは、プロンプトや表ヘッダーで使用され、データ項目の値の前に表示されます。ツールチップは、ユーザーが項目の上に移動したときに表示されるテキストです。ビュー・オブジェクトの各属性には、ラベルとツールチップが関連付けられています。ビュー・オブジェクトは、開発者がSQL問合せの結果を簡単に操作できるようにするためのOracle ADFコンポーネントです。

この図は、JDeveloperの「属性の編集」ダイアログにある「ラベル・テキスト」および「ツールチップ・テキスト」オプションを示しています。

UIヒントのセッション変数ネーミング・スキームについて

セッション変数ネーミング・スキームについて学習します。

セッション変数名は、Oracle WebLogic ServerOracle BI EEブローカ・サーブレットによって次の形式で生成されます。

ADF_UI Hint Type_Database Name_View Object Name_Attribute's Name

説明:

UI Hint Typeは、セッション変数が表すUIヒントのタイプに応じて、LABELまたはTOOLTIPです。

Database Nameは、XML問合せのADFQuery要素の「database」属性の値です。一重引用符(')、二重引用符(")、スペースなどの特殊文字はアンダースコア文字に置き換えられます。

View Object Nameは、属性が属するビュー・オブジェクトの名前です。Oracle ADFでは、名前に特殊文字およびスペースを使用することは禁止されています。

Attribute's Nameは、セッション変数が表す属性の名前です。Oracle ADFでは、名前に特殊文字およびスペースを使用することは禁止されています。

セッション変数名はすべて大文字です。たとえば、初期化ブロックでのXMLコードの使用によるUIヒントの問合せのXML問合せの例では、次の名前を持つ4つのセッション変数が生成されます。

ADF_LABEL_MY_ORCLADF_EMPLOYEESVIEW_FIRSTNAME

ADF_TOOLTIP_MY_ORCLADF_EMPLOYEESVIEW_FIRSTNAME

ADF_LABEL_MY_ORCLADF_EMPLOYEESVIEW_LASTNAME

ADF_TOOLTIP_MY_ORCLADF_EMPLOYEESVIEW_LASTNAME

プレゼンテーション列に対応する物理列の特定について

各プレゼンテーション列は、セッション変数のネーミング・スキームの要件に従って物理列にマップする必要があります。

プレゼンテーション・レイヤー・オブジェクトに「ADFラベルの生成」または「ADFツールチップの生成」を選択すると、物理列は次のルールを使用して検索されます。

  • プレゼンテーション列を調べ、その論理列を確認します。論理列が既存の論理列から派生している場合、物理列は見つかりません。

  • 論理列のデフォルトの集計ルールが「なし」または「合計」以外の場合、物理列は見つかりません。「合計」以外の集計ルールにADF UIヒントを使用しても、意味的に有効ではありません。

  • 複数の論理表ソースによって、1つの論理列が複数の物理列にマップされている場合があります。無効になっていない論理表ソースのみが検索されます。

  • 非トリビアルな式(物理列名しかないもの)を使用して、論理列をマップする論理表ソースを検索しないでください。論理表ソースが検索されない場合、物理列は見つかりません。

  • 論理表ソースの残りの順序付きリストから、最初の論理表ソースによってマップされている物理列を調べます。物理列は、ビュー・オブジェクト属性にマップする必要があります。その物理列は、タイプOracle ADF 12cの物理データベースの一部として存在している必要があります。

    • この条件を満たす場合、UIヒントを取得するための物理列が見つかります。

    • この条件を満たさない場合、ビュー・オブジェクト属性にマップされている物理列が見つかるまで、引き続き、次の論理表ソースによってマップされている物理列を調べます。

      すべての論理表ソースを検索しても条件を満たさなかった場合、物理列は見つかりません。

これらのルールを使用して、UIヒントを取得するための物理列が見つかると、事前に決定されたネーミング・スキームに基づく名前を持つセッション変数がカスタム表示名またはカスタム説明に移入されます。「UIヒントのセッション変数ネーミング・スキームについて」を参照してください。

これらのルールを使用して、UIヒントを取得するための物理列が見つからなかった場合、「ADFラベルの生成」および「 ADFツールチップの生成」オプションは、無効になった状態で右クリック・メニューに表示されます。

これらのルールを使用して見つかった物理列を使用するかわりに、初期化ブロックでXMLコードを使用して、独自のセッション変数をADF UIヒントで初期化することもできます。その場合、「カスタム表示名」および「カスタム説明」フィールドにこれらのセッション変数を手動で入力する必要があります。「初期化ブロックでのXMLコードの使用によるUIヒントの問合せ」を参照してください。

UIヒントを伝播するためのセッション変数の自動初期化について

セッション変数が作成される時期について学習します。

ADFラベルの生成」および「ADFツールチップの生成」オプションを使用してOracle ADFのUIヒントのセッション変数名が正常に生成されると、Oracle BIプレゼンテーション・サービスがセッション中に問合せを実行したときに、セッション変数が作成され、初期化されます。

パフォーマンス上の理由から、セッションのログオン段階では、変数の作成と初期化は行われません。変数は「遅延実行の許可」を使用して作成され、変数がセッションの特定の問合せに必要な場合は初期化されます。

Oracle BIプレゼンテーション・サービスがODBC経由でカスタム表示名およびカスタム説明を問い合せると、Oracle BIサーバーによって、関連するセッション変数が作成されているかどうかが確認されます。変数が作成されなかった場合、Oracle BIサーバーでは適切なXML問合せを動的に生成し、Oracle ADFデータ・ソースからUIヒントを取得します。Oracle BIサーバーでは、そのUIヒントを使用してセッション変数が作成され、初期化されます。パフォーマンスを最適化するために、Oracle BIサーバーでは各ビュー・オブジェクトのUIヒントを問い合せます。Oracle BIサーバーがビュー・オブジェクトの属性のUIヒントを必要とする場合、そのビュー・オブジェクトの下にある全属性のUIヒントに対して問合せが行われ、セッション変数を通して伝播されます。

分析の作成時のOracle ADFデータ・ソースのUIヒントの使用

分析の作成時にOracle ADFデータ・ソースのUIヒントを使用できます。

このタスクを実行するには、次の前提条件を満たす必要があります。

  • Oracle ADFデータ・ソースでUIヒントが構成されています。

  • 管理ツールOracle ADFデータ・ソースの作業用リポジトリが構成されています。

  1. LastNameというプレゼンテーション列がリポジトリに含まれているとします。また、「プレゼンテーション列」ダイアログの「一般」タブで、「カスタム表示名」および「カスタム説明」フィールドは選択されていません。

    プレゼンテーション・レイヤーの列を右クリックし、まず「表示名の外部化」「ADFラベルの生成」を選択し、次に「記述子の外部化」「ADFツールチップの生成」を選択して、「カスタム表示名」および「カスタム説明」フィールドに移入する文字列を生成します。

    プレゼンテーション表の右クリック・メニューからこれらのオプションを使用して、その表のすべての列について文字列を生成することもできます。

  2. UIヒントを表示します。

    1. Oracle Business Intelligenceにサイン・インします。

    2. UIヒントを取得したサブジェクト・エリアを使用して、新しい分析を作成します。

    3. 「サブジェクト領域」ペインで、Employeeフォルダを開いて、Oracle ADFデータ・ソースから伝播されたUIヒントを表示します。

      LastName列は、Last Name(Oracle ADFデータ・ソースのラベル値)と表示されます。その列の上にマウス・ポインタを移動すると、これは従業員の姓です(Oracle ADFデータ・ソースのツールチップ値)というヒントが表示されます。

初期化ブロックでのXMLコードの使用によるUIヒントの問合せ

自動化されたシステムを使用する方法とは別に、初期化ブロックでSQL文のかわりに専用のXMLコードを使用して、1つのリポジトリおよびサブジェクト・エリア内で、UIヒントをデータ・ソースに問い合せることもできます。

「UIヒントのセッション変数ネーミング・スキームについて」を参照してください。

mode、databaseおよびlocaleという3つの属性を持つADFQuery要素を使用します。この要素には、ゼロ個以上の子要素が必要です。要素の構文は次のとおりです。

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<ADFQuery mode="mode" database="database_name"
locale="VALUEOF(NQ_SESSION.WEBLANGUAGE)">
     <ViewObject><![CDATA[view_object_name]]></ViewObject>
     <Attribute>
     <ViewObject><![CDATA[attribute_view_object_name]]></ViewObject>
     <Name><![CDATA[attribute_name]]></Name>
     </Attribute>
</ADFQuery>

説明:

modeは、問い合せる内容を指定します。

  • 属性のラベルを問い合せる場合はlabel

  • 属性のツールチップを問い合せる場合はtooltip

  • 属性のラベルとツールチップを問い合せる場合はui_hints

database_nameは、Oracle ADFデータ・ソースの属性に対応する物理列が含まれている、管理ツールの物理データベース・オブジェクトの名前を指定します。

view_object_nameは、ビュー・オブジェクトの名前を指定して、その中のすべての属性のUIヒントを取得します。

attribute_view_object_nameは、属性が含まれているビュー・オブジェクトの名前を指定します。

attribute_nameは、関連付けられたビュー・オブジェクトに属する属性の名前を指定して、その属性のUIヒントを取得します。

初期化ブロックを構成したら、該当するプレゼンテーション列について「カスタム表示名」および「カスタム説明」テキスト・フィールドにセッション変数名を手動で入力する必要があります。

分析の作成時のOracle ADFデータ・ソースのUIヒントの使用の手順に従います。ただし、最初の手順を次の手順に置き換えてください。

  1. 管理ツールでセッション初期化ブロックを作成します。

    1. セッション変数初期化ブロック・データ・ソースダイアログで、初期化文字列を入力します。

      この例では、初期化ブロックは、EmployeesViewというビュー・オブジェクトのすべての属性のラベルとツールチップを問い合せます。これにより、適切なOracle ADF UIヒントの問合せを含むセッション変数初期化ブロックの設定を示します。My_orclADF"."Connection Pool"は、Oracle ADFデータ・ソースの接続プールです。

    2. 「セッション変数初期化ブロック」ダイアログで、変数ターゲットとして「行単位の初期化」を選択します。

    3. 「テスト」をクリックして、Oracle ADFデータ・ソースに対する問合せをテストします。

      結果ウィンドウの最初の列には、ネーミング・スキームを使用して生成されたセッション変数名が表示されます。2番目の列には、Oracle ADFデータ・ソースのラベル値およびツールチップ値が表示されます。

  2. プレゼンテーション列のカスタム表示名と説明を構成します。

    EmployeesViewビュー・オブジェクトのUIヒントを使用できるプレゼンテーション表を検索するために、この例では、管理ツールの「リポジトリの問合せ」機能を使用します。

    1. 物理表(EmployeesViewなど)を右クリックし、メニューから「問合せ関連オブジェクト」「プレゼンテーション」「プレゼンテーション表」を選択します。

      「問合せ関連オブジェクト」ダイアログに、関連するすべてのプレゼンテーション表が表示されます。

      この例では、Employeeプレゼンテーション表の列のカスタム表示名とカスタム説明を設定します。

    2. 必要なプレゼンテーション表を選択し、「移動」をクリックします。

      選択したプレゼンテーション表が表示されます。

    3. プレゼンテーション表を開いて、プレゼンテーション列を表示します。

    4. LastNameプレゼンテーション列をダブルクリックして、「プレゼンテーション列」ダイアログを表示します。

    5. カスタム表示名」を選択し、次のような値を入力します。

      VALUEOF(NQ_SESSION.ADF_LABEL_MY_ORCLADF_EMPLOYEESVIEW_LASTNAME)
      
    6. カスタム説明」を選択し、次のような値を入力します。

      VALUEOF(NQ_SESSION.ADF_TOOLTIP_MY_ORCLADF_EMPLOYEESVIEW_LASTNAME)
      
    7. 「OK」をクリックします。

    8. 変更内容をリポジトリに保存し、Oracle BIサーバーを再起動します。

例6-1 すべてのビュー・オブジェクトのラベルの問合せ

すべてのビュー・オブジェクトのすべての属性のUIヒントを問い合せる場合、ADFQuery要素に子要素を含めないでください。たとえば、My_orclADF物理データベース・オブジェクト下のすべてのビュー・オブジェクトのすべての属性のラベルを問い合せるには、次のXMLコードを使用します。

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<ADFQuery mode="label" database="My_orclADF"
locale="VALUEOF(NQ_SESSION.WEBLANGUAGE)">
</ADFQuery>

例6-2 特定のビュー・オブジェクトのツールチップの問合せ

特定のビュー・オブジェクトのすべての属性のUIヒントを問い合せる場合、ViewObjectという子要素をゼロ個以上ADFQuery要素に含めることができます。各ViewObject要素に、ビュー・オブジェクトの名前を含むテキスト・コンテンツがあります。ViewObject要素は、すべての属性のUIヒントの問合せ元のビュー・オブジェクトを指定するために使用します。たとえば、My_orclADF物理データベース・オブジェクト下のEmployeesViewおよびCustomersViewというビュー・オブジェクトのすべての属性のツールチップを問い合せるには、次のXMLコードを使用します。

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<ADFQuery mode="tooltip" database="My_orclADF"
locale="VALUEOF(NQ_SESSION.WEBLANGUAGE)">
   <ViewObject><![CDATA[EmployeesView]]></ViewObject>
   <ViewObject><![CDATA[CustomersView]]></ViewObject>
</ADFQuery>

例6-3 特定の属性のUIヒントの問合せ

Attributeという子要素をゼロ個以上ADFQuery要素に含めることができます。各Attribute要素に、ViewObjectおよびNameという2つの必須の子要素があります。Attribute要素は、UIヒントの問合せ元の属性を指定するために使用します。ViewObject子要素には、ビュー・オブジェクトの名前を含むテキスト・コンテンツがあります。この要素は、属性が属するビュー・オブジェクトを指定します。Name子要素には、属性の名前を含むテキスト・コンテンツがあります。たとえば、My_orclADF物理データベース・オブジェクト下のEmployeesViewビュー・オブジェクトのFirstnameおよびLastnameという属性のラベルとツールチップを問い合せるには、次のXMLコードを使用します。

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<ADFQuery mode="ui_hints" database="My_orclADF"
locale="VALUEOF(NQ_SESSION.WEBLANGUAGE)">
   <Attribute>
      <ViewObject><![CDATA[EmployeesView]]></ViewObject>
      <Name><![CDATA[Firstname]]></Name>
   </Attribute>
   <Attribute>
      <ViewObject><![CDATA[EmployeesView]]></ViewObject>
      <Name><![CDATA[Lastname]]></Name>
   </Attribute>
</ADFQuery>