物理参照表および物理参照列の作成
論理レイヤーで物理参照表オブジェクトを作成して、翻訳参照表に必要なメタデータを定義できます。物理参照表は、その意味と使用方法の両方において論理参照表に類似しています。
物理参照表は、論理参照表で処理できない次のシナリオに対処します。
-
参照表ソースが断片化されている。この場合、複数の物理参照表を使用して値を保持します。たとえば、断片化されている製品名データの翻訳値を、productname_trans_AtoMおよびproductname_trans_NtoZという2つの物理参照表に分散させることができます。
-
異なるレベルの翻訳表を使用できる。たとえば、Essbaseデータ・ソースとリレーショナル・データ・ソースの両方で翻訳を使用できます。基本問合せと同じソースを使用することをお薦めします。
論理参照表とは異なり、物理参照表は論理表ソース・マッピングで参照関数を作成することにより構成します。
たとえば、次の物理表があるとします。
-
categoryidおよびcategorynameなどの列を含む、Categoriesという名前のベース表。
-
categoryid、language_keyおよびcategorynameなどの列を含む、Categories_Transという名前の翻訳表。categorynameの翻訳済値は、categoryid列およびlanguage_key列の組合せにより決定されます。
Categoriesという名前の論理表があるとします。この表に、categoryname_pという名前の新しい論理列を追加します。この列は、現在の言語に基づく翻訳列です。論理参照列とは異なり、この列は他の論理列からは導出されません。
次の手順で、前述の例を使用して、物理参照翻訳列を構成する方法について説明します。
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
関数の完全な構文の情報は、「論理参照列の作成」を参照してください。