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

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

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

  • 参照表ソースが断片化されている。この場合、複数の物理参照表を使用して値を保持します。たとえば、断片化されている製品名データの翻訳値を、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. 「ビジネス・モデルとマッピング」レイヤーで、適切な論理表(たとえば、Categories)を右クリックし、「新規オブジェクト」、「論理列」の順に選択して新しい論理列を作成します。
  3. 論理列の名前(たとえば、categoryname_p)を指定します。
  4. 「列ソース」タブを選択します。
  5. 物理マッピングから派生」の下の「論理表ソース」ボックスで、ベース表列を含む論理表ソース・オブジェクトをダブルクリックします。「論理表ソース」ダイアログの「列マッピング」タブが表示されます。
  6. マップされていない列の表示」が選択されていることを確認します。
  7. 新しい論理列(たとえば、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")))
    

    式ビルダーを使用して作成することもできます。

  8. 「論理表ソース」ダイアログで「OK」をクリックします。
  9. 「論理列」ダイアログで「OK」をクリックします。
  10. 変更内容を保存します。

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

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

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

ダイアログを使用して物理参照表を構成できないため、結合列および値の順番と、物理翻訳表の「物理表」ダイアログに表示される列の順序に互換性があることを確認する必要があります。たとえば、Categories_trans表の「物理表」ダイアログの「Keys」タブでは、主キーは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関数の完全な構文の情報は、論理参照表および論理参照列の作成を参照してください。