Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

データ・ルックアップ・テーブルの定義

[ルックアップ・テーブル] ポータル・ページでは、Lookup と Exists のユーティリティ関数をサポートするためのデータ・テーブルを作成および構成できます。Lookup ユーティリティ関数は、ビジネス・ルールまたは DTL データ変換からテーブル検索を容易に実行できるように用意されています。ルックアップ・テーブルをエクスポートする際に起こりうる問題を回避するために、ルックアップ・テーブルに名前を付けるときは特殊文字を使用しないことをお勧めします。例外として、ピリオド (.) は名前で使用しても安全です。

詳細は、"ビジネス・ルールの開発" の "プロダクションで使用するユーティリティ関数" を参照してください。

Lookup 関数は、検索テーブルを作成し、これにデータを入力して初めて機能するようになります。この操作を実行するには、[Interoperability][構成する][データ・ルックアップ・テーブル] の順に選択します。[開く] をクリックした場合は、ネームスペース内で定義されているルックアップ・テーブルがダイアログ・ボックスに一覧表示されます。ルックアップ・テーブルを選択すると、InterSystems IRIS® では次のフォームが表示されます。

Lookup Table Management Portal page

ルックアップ・テーブル内のエントリを編集するには、以下の方法を使用できます。

  • 赤い X アイコンをクリックして、エントリを削除します。テーブルを保存すると、そのエントリが削除されます。テーブルを保存する前であれば、そのエントリの左側に表示されている緑色の + アイコンをクリックすることで、そのエントリを復元できます。

  • 目的のエントリと同じキーと新しい値を右側のフォームに入力し、[適用] をクリックして、そのエントリを更新します。値を更新した後、ルックアップ・テーブルを保存するまでは、元の値が [元の値] 列に表示されます。既存のエントリを選択すると、そのエントリの現在の値が右側のフォームに入力されます。

  • 新しいキーと値を右側のフォームに入力して、[適用] をクリックして、新しいエントリを追加します。

  • メニュー・バーの折れ曲がった矢印をクリックして、直前の操作を取り消します。

Note:

エントリを選択した場合は、右側のフォームの値が初期化されるだけです。[適用] をクリックした場合は、選択されているエントリではなく [キー] フィールドで指定されているエントリが操作の対象となります。[キー] フィールドの値がいずれかの既存エントリと一致している場合は、そのエントリが更新されます。[キー] フィールドの値がどの既存エントリとも一致していない場合は、新しいエントリが追加されます。メニュー・バーの緑色の + アイコンをクリックするか [破棄] をクリックすると、単にフォームがクリアされるだけです。

操作を実行するには、次のいずれかのボタンをクリックします。

  • [新規作成] — フォームが開いて、ルックアップ・テーブルに名前を付けてから、空のテーブルを表示できます。テーブルにエントリを追加するには、キーと値のペアを入力して、ペアごとに [適用] をクリックします。ルックアップ・テーブルを永続化するには、[保存] をクリックする必要があります。

  • [開く] — 現在のネームスペース内で定義されているルックアップ・テーブルが表示されて、いずれかのルックアップ・テーブルを選択できます。

  • [保存] — 適用済みの編集内容と共に現在のルックアップ・テーブルを保存します。[元の値] 列がクリアされて、削除されたレコードが除去されます。

  • [名前を付けて保存] — 現在のテーブル・エントリを新規テーブルに保存します。新しいテーブル名を指定して、[OK] をクリックします。[元の値] 列がクリアされて、削除されたレコードが除去されます。

  • [削除] — 現在のテーブルを削除します。現在のテーブルを開いた後に何らかの編集をテーブルに加えた場合は、ページを離れるかどうかが尋ねられます。テーブルを削除するには、[ページを離れる] を選択します。[ページにとどまる] を選択した場合は、現在のテーブルが新規テーブルとして扱われます。

  • ルックアップ・テーブルは、[レガシのインポート][インポート] の 2 つの方法でインポートできます。2 つの方法の重要な相違点は、既存のルックアップ・テーブルと同じ名前のルックアップ・テーブルをインポートした場合、[レガシのインポート] を使用すると既存のテーブルをそのファイルのデータとマージしますが、[インポート] を使用すると、既存のルックアップ・テーブルをそのファイルのデータで置き換えることです。

    • [レガシのインポート] — ファイルに定義されているルックアップ・テーブルをインポートします。インポートされたルックアップ・テーブルの名前が既存のテーブルの名前と同じ場合、値はマージされます。キーがファイルで定義されると、検索テーブル内のそのキーの既存の値はすべて上書きされます。

    • [インポート] — XML ファイルで定義されている新規検索テーブルを追加します。新規テーブルのいずれかに既存のテーブルと同じ名前がある場合、新規テーブルにより旧テーブルが置換されます。[参照] をクリックして XML ファイルを指定してから、[開く] をクリックします。フォームには、そのファイルで定義されているルックアップ・テーブル (LUT) ドキュメントが表示されます。リストされているルックアップ・テーブルをすべて選択することも、一部のテーブルを選択することもできます。その後で [インポート] を選択して、ルックアップ・テーブルをインポートします。[インポート] ボタンは、新しいファイル形式のみをインポートできます (以下の説明を参照してください)。

    Note:

    ルックアップ・テーブルには、新しい形式とレガシ形式の 2 つのファイル形式があります。新しい形式には追加の XML ドキュメント・タグが含まれています。[レガシのインポート] は新しい形式とレガシ形式の両方を処理できますが、[インポート] は新しい形式しか処理できません。新しい形式はスタジオと [エクスポート] ポータル・ボタンを使用してエクスポートされます。古い形式は Ens.Util.LookupTable.%Export() メソッドを使用してエクスポートされます。ルックアップ・テーブルのファイル形式の詳細は、"ルックアップ・テーブルのファイル形式" を参照してください。

  • [エクスポート] — 現在のテーブルを XML ファイルにエクスポートします。このファイルの名前を指定できますが、エクスポートされたルックアップ・テーブルでは、現在のルックアップ・テーブルと同じ名前が使用されるため、このファイル名は使用されません。現在の XML 形式を使用してのみエクスポートできます。本リリースでは、レガシ XML 形式をエクスポートすることはできません。

    ルックアップ・テーブルに名前を付けるときに特殊文字を使用した場合、テーブルのエクスポート時に問題が生じる可能性があります。回避策として、個々のテーブルではなく ^Ens.LookupTable グローバル全体をエクスポートできます。詳細は、"グローバルのエクスポート" を参照してください。または、ルックアップ・テーブルの名前に対応するグローバル添え字をエクスポートすることもできます。例えば、ルックアップ・テーブル My/Lookup/Table をエクスポートするには、以下を呼び出します。

     set st = $SYSTEM.OBJ.Export("Ens.LookupTable(""My/Lookup/Table"").GBL","filename.xml")
    
Caution:

[削除][インポート]、または[レガシのインポート] 操作は元に戻すことができません。

Note:

同じ名前を持つ既存の検索テーブルがある場合、[インポート] ボタンの動作は、[レガシのインポート] ボタンとは異なるものになります。[インポート] ボタンは、既存の検索テーブルの内容を完全に置き換えます。一方、[レガシのインポート] ボタンは、新規の値と既存の値をマージします。

プログラムでのルックアップ・テーブルの操作方法は、"プロダクションの開発" の "プログラムによるルックアップ・テーブルの操作" を参照してください。

後続の項では、以下について説明します。

ルックアップ・テーブルのファイル形式

ルックアップ・テーブルを記述する XML 形式には、新しい形式とレガシ形式の 2 つの形式があります。

新しいルックアップ・テーブルの XML 形式は、次の例のように 1 つ以上の XML ドキュメント要素で構成されています。

<?xml version="1.0" encoding="UTF-8"?>
<Export  
  ts="2014-10-21 11:52:51">
  <Document name="AlertTable.LUT">
  <lookupTable>
      <entry table="AlertTable" key="BadMessageHandler">temp_1@company.test</entry>
      <entry table="AlertTable" key="Extra_Observations">temp_5@company.test</entry>
      <entry table="AlertTable" key="MsgRouter">temp_3@home.test</entry>
      <entry table="AlertTable" key="Priority_FileOperation">temp_5@home.test</entry>
      <entry table="AlertTable" key="Regular_FileOperation">temp_4@company.test</entry>
    </lookupTable>
  </Document>
</Export>

XML 要素の構文は次のとおりです。

  • Document 要素には、.LUT というファイル・タイプのルックアップ・テーブル名を指定する name 属性が必要です。

  • Document 要素には、1 つの lookupTable 要素が含まれています。

  • lookupTable 要素には、entry 要素のリストが含まれています。

  • entry 要素には、Document 要素の name 属性で指定されているのと同じテーブル名を指定する table 属性が含まれ、key 属性が指定され、エントリの値がテキストとして指定されます。

Ens.Util.LookupTable.%Export() メソッドでエクスポートされるレガシ形式には、Document 要素はありません。この形式は、単一の lookupTable 要素と、この要素に含まれている entry 要素のみで構成されます。table 要素に異なる名前を指定することで、複数のルックアップ・テーブルのエントリを含めることができます。

単層ファイルのデータ・ルックアップ・テーブルとしてのインポート

単層ファイルが以下のとおりであれば、データ・ルックアップ・テーブルとしてインポートできます。

  • ヘッダー行を含めることが可能な場合。

  • このファイルには、空白文字、カンマ、タブ、またはその他の区切り文字で区切られた 3 つの値が含まれている必要があります。

  • 左から右へ、3 つの値がルックアップ・テーブルの [値] 行、ルックアップ・テーブルの [キー] 値、およびルックアップ・テーブルの目的の名前に該当する必要があります。

ルックアップ・テーブルのようなファイルをインポートするには、データ・インポート・ウィザードを使用します。詳細は、"InterSystems SQL の使用法" の "テキスト・ファイルからのデータのインポート" を参照してください。スキーマ名には、[Ens_Util] を使用します。テーブル名には、[検索テーブル] を使用します。

FeedbackOpens in a new tab