物理参照表および物理参照列の作成

論理レイヤーで物理参照表オブジェクトを作成して、翻訳参照表に必要なメタデータを定義できます。物理参照表は、その意味と使用方法の両方において論理参照表に類似しています。

物理参照表は、論理参照表で処理できない次のシナリオに対処します。

  • 参照表ソースが断片化されている。この場合、複数の物理参照表を使用して値を保持します。たとえば、断片化されている製品名データの翻訳値を、productname_trans_AtoMおよびproductname_trans_NtoZという2つの物理参照表に分散させることができます。

  • 異なるレベルの翻訳表を使用できる。たとえば、Essbaseデータ・ソースとリレーショナル・データ・ソースの両方で翻訳を使用できます。基本問合せと同じソースを使用することをお薦めします。

論理参照表とは異なり、物理参照表は論理表ソース・マッピングで参照関数を作成することにより構成します。

たとえば、次の物理表があるとします。

  • categoryidおよびcategorynameなどの列を含む、Categoriesという名前のベース表。

  • categoryid、language_keyおよびcategorynameなどの列を含む、Categories_Transという名前の翻訳表。categorynameの翻訳済値は、categoryid列およびlanguage_key列の組合せにより決定されます。

Categoriesという名前の論理表があるとします。この表に、categoryname_pという名前の新しい論理列を追加します。この列は、現在の言語に基づく翻訳列です。論理参照列とは異なり、この列は他の論理列からは導出されません。

次の手順で、前述の例を使用して、物理参照翻訳列を構成する方法について説明します。

  1. ホーム・ページで、「ナビゲータ」「セマンティック・モデル」の順にクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. 「論理レイヤー」論理レイヤー・アイコンをクリックし、論理列を追加する表(カテゴリなど)を参照してダブルクリックします。
  4. 論理表で、「列」「列の追加」の順にクリックします 列の追加アイコン新規Column_1行に、列名(categoryname_pなど)を入力します。[Enter]を押します。
  5. 「ソース」をクリックします。
  6. 論理表ソースのリスト表で、論理表ソースをクリックし、「詳細ビュー」詳細ビュー・アイコンをクリックしてプロパティ・ペインを開きます。
  7. 列マッピングにスクロールして、「表示」フィールドをクリックし、「アンマップ済」を選択します。
  8. 新しい論理列(categoryname_pなど)を見つけてクリックして選択し、再度クリックして式フィールドを表示します。式エディタ・アイコンをクリックして、次のような式を作成します:
    INDEXCOL(VALUEOF(NQ_SESSION."LAN_INT"),
    "DB_Name"."My_Category"."My_Schema"."Categories"."CategoryName", LOOKUP(SPARSE 
    "DB_Name"."My_Category"."My_Schema"."CATEGORIES_TRANS"."CATEGORYNAME",
    "DB_Name"."My_Category"."My_Schema"."Categories"."CategoryName",
    "DB_Name"."My_Category"."My_Schema"."Categories"."CategoryID",
    VALUEOF(NQ_SESSION."LANGUAGE")))
    
  9. 「論理表ソース」で、「OK」をクリックします。

Categories_trans物理翻訳表を論理表ソースに組み込む必要はありません。INDEXCOL関数により、LAN_INTセッション変数が0であるかどうかチェックされ、ベース表からcategoryname列がフェッチされます。LOOKUP関数について次の点に注意してください。

  • 物理LOOKUP関数は論理LOOKUP関数と同様に機能します。唯一の違いは、論理表および論理列に対するすべての参照が、物理表および物理列に置き換えられることです。

  • LOOKUP関数の第1列は値列で、これは翻訳表の翻訳値列です。疎参照が存在する場合、第2列は基本値列です。残りの列は、物理翻訳表に結合される列または値です。この物理翻訳表は、LOOKUP関数の値列により示されます。

ダイアログ・ボックスを使用して物理参照表を構成できないため、結合列および値の順序と、物理翻訳表の物理表の「一般」タブの「追加キー」セクションに表示される列の順序に互換性があることを確認する必要があります。たとえば、Categories_trans表の「追加キー」セクションは、主キーがCategoryID列とLanguage_Key列で構成されていることを示します。

LOOKUP関数で指定される列は、次のように対応します。

  • 次の行があるとします:

    "DB_Name"."My_Category"."My_Schema"."Categories"."CategoryID"
    

    これはCategories_trans.CategoryID列に対応します。

  • 次の行があるとします:

    valueof(NQ_SESSION."LANGUAGE")
    

    これはCategories_trans.Language_key列に対応します。

LAN_INTセッション変数やLANGUAGEセッション変数などの参照の概念の詳細、およびLOOKUP関数の完全な構文の情報は、「論理参照列の作成」を参照してください。