このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Enterprise Edition

Value-Map コンポーネントにより ルックアップ を使用して値を他の値に置き換えることができます。 このようなコンポーネントは1度に1つの値を処理します。このためにマッピング上に1つの 入力 と1つの 結果 が存在します。

mf_lookup_01

Value-Map はアイテムを置き換えるために2つのセット内の個別のアイテムをマップする場合役に立ちます。例えば、数値 (1、2、3、4、5、6 および 7) で表示された曜日をそれぞれの曜日 (「月曜」、「火曜」 など) と置き換えます。同様に月の名前 (「1月」、「2月」、「3月」など) を各月の数値表記 (1、 2、3, etc). に置き換えます。マッピングのランタイムでは、一致する値はカスタム ルックアップ テーブルに従い置き換えられます。 両方のセット内の値は異なる型であることができますが、各セットは同じデータ型の値を保管する必要があります。

 

Value-Map コンポーネントは最初のセット内の各値が2番目のセット内の単一の値に対応する単純なルックアップに適しています。ルックアップ テーブル内で値が見つからない場合、カスタム値、または空の値と置き換える、またはそのままパスすることができます。更に複雑な条件をベースにした値をルックアップまたはフィルターする場合、コンポーネントのフィルターを代わりに使用します。

 

重要な点は、コードを生成または MapForce Server 実行可能ファイルをマッピングからコンパイルする場合、ルックアップテーブルデータは生成されたコード、またはファイル内に埋め込まれる点です。この結果、ルックアップテーブルを直接マッピング上で定義することは、データが頻繁に変更されず、 (例えば、数百エントリよりも少ないなど) データの総量が大きくない場合のみ良い選択でしょう。ルックアップデータが定期的に変更する場合、マッピング、および生成されたコードを定期的に管理することは難しく、ルックアップデータをテキスト、XML、データベース、または Excel  として管理する方法のほうが簡単です。

 

ルックアップテーブルが大きい場合、ルックアップテーブルによりマッピングの実行が遅くなる場合があります。この場合、代わりに SQL-Where を使用するデータベースコンポーネントを使用することが奨励されます。 ポータビリティを考慮すると、 SQLite データベースは良い候補です。他方、 MapForce Server または MapForce Server Advanced Edition を使用してマッピングを実行しルックアップテーブルのパフォーマンスを向上することもできます。

 

Value-Map の作成方法

Value-Map コンポーネントをマッピングに追加するには 次のいずれかの操作を実行してください:

 

「Value-Map の挿入」 ic-valmap ツールバーボタンをクリックします。

「挿入」 メニューから「Value-Map」をクリックします。

接続を右クリックし 「Value-Map の挿入」 をコンテキストメニューから選択します。

 

この操作は新規の Value-Map コンポーネントをマッピングに追加します。ルックアップ テーブルにアイテムのペアを追加することから開始します。これを行うにはコンポーネントのタイトルバーをダブルクリック、または右クリックし、「プロパティ」 をコンテキストメニューから選択します。

mf_lookup_02

マッピングのランタイムで、MapForce は Value-Map の 入力 に各値が到達するかをチェックします。 ルックアップ テーブル内の 左側の列 に一致する値が存在する場合、元の入力値を右側の列からの値と置き換えます。それ以外の場合、任意で以下のオプションの一つに戻るように構成することができます:

 

置換の値。下のサンプル内では、置換の値はテキスト「incorrect date」です。置換の値をテキストを入力せずに空に設定することもできます。

元の入力の値。これはテーブル内で一致が存在しない場合、元の入力値がマッピングにパスされることを意味します。

 

それ以外の場合の条件を構成しない場合、 Value-Map は一致が見つからない場合空のノードを返します。この場合、ターゲットコンポーネントには何もパスされず、出力には空のフィールドが含まれます。このような場合が発生することを回避するために、それ以外の場合の条件を構成、または、 substitute-missing 関数を使用します。

 

空の置換値の設定と、それ以外の場合の条件を設定しない事は異なります。最初のケースは、出力でフィールドは生成されますが、空の値が存在します。後者のケースは値を囲むフィールド (または XML 要素)が作成されません。 詳細に関しては、サンプル: 職位の置換.を参照してください。

 

Value-Map の設定方法

ルックアップ テーブル内で、 必要な数の値のペアを定義することができます。値を手動で入力する、または、テキスト、CSV、または Excel ファイルからテーブルのデータをコピーして貼り付けることができます。一般的なブラウザーを使用して HTML ページからテーブルをコピーして貼り付けることができます。 DB クエリペイン 内のデータベースグリッドからデータを張り付けることができます。 テキストファイルからデータをコピーするとフィールドはタブ文字で区切られる必要があります。更に、 MapForce は多くの場合コンマ、またはセミコロンにより区切られているテキストを認識することができます。

 

ルックアップ テーブルを作成する際に以下の点を考慮してください:

 

1.左がの列内のすべてのアイテムは一意である必要があります。それ以外の場合、具体的に一致するアイテムを決定することは不可能です。

2.同じ列に属するアイテムは同じデータ型である必要があります。 ルックアップ テーブル内の各列の上のドロップダウンリストからデータ型を選択することができます。ブール型を変換する必要がある場合、テキスト 「true」 または 「false」 を文字通り入力してください。このシナリオの説明は サンプル: 曜日の置換を参照してください。

 

MapForce が ルックアップ テーブル内で無効なデータを検知すると、ピンク色でハイライトされたエラーメッセージが表示されます。例:

Value-Map コンポーネントに外部ソースからデータをインポートする方法:

1.(例えば、 Excel などの) ソースプログラム内の注目するセルを選択します。これは単一のデータ列、または2つの隣接した列であることができます。

2.外部プログラムの 「コピー」 コマンドを使用してクリップボードにデータをコピーします。

3.Value-Map コンポーネント上で、データを張り付ける行の前をクリックします。

4.Value-Map コンポーネント上の 「クリップボードからテーブルを張り付ける」 mf_ic_paste ボタンをクリック、または「Ctrl+V」 または 「Shift+Insert」 を押します。

 

メモ:「クリップボードからテーブルを張り付ける」 ボタンはソースからデータがコピーされている場合のみ有効化されています (すなわち、クリップボード上にデータが存在します)。

 

クリップボードデータに複数の列が含まれる場合、最初の2列の行のでーたのみが ルックアップ テーブルに挿入されます。以降の行は無視されます。既存の値のトップの単一行からデータを張り付ける場合、コンテキストメニューが表示され、新規の行としてクリップボード上のデータが挿入されるか、または既存の行が上書きされるかが問われます。 このため、テーブル内の既存の値を上書きする必要がある場合、クリップボードには福栖ではなく1行のみのデータが含まれていることを確認してください。

 

既存の行の前に行を手動で挿入するには、最初に注目する行をクリックし、 「挿入」 mf_ic_insert ボタンをクリックします。

 
既存の行を削除するには、左側にマウスのボタンを押したまま行をドラッグして (上または下の) 新しい位置に移動します。

 

他の箇所で後に張り付けるためのコピーまたは切り取りを行うには、行を選択し 「コピー」 mf_ic_copy ボタン (または 「切り取り」 mf_ic_cut ボタンをそれぞれ)クリックします。必ずしも連続していない複数の行をコピーまたは切り取ることもできます。複数の行を選択するには、行を選択しながら 「Ctrl」 キーを押し続けます。切り取られた、またはコピーされたテキストは両方の列からの値を含むことに注意してください。1つの行からの値のみを切り取る、またはコピーすることはできません。

 

行を削除するには 「削除」 mf_ic_delete ボタンをクリックします。

 

左と右の列をスワップするには、「スワップ」 mf_ic_swap ボタンをクリックします。

 

Value-Map パラメーターの名前を変更する方法

デフォルトでは Value-Map コンポーネントの入力パラメータは「入力」と呼ばれ、出力パラメーターは「結果」と呼ばれます。マッピングをより簡潔にするために、それぞれの名前の横の 「編集」 mf_ic_pencil ボタンをクリックしてこれらのパラメーターの名前を任意で変更することができます。以下は、カスタムパラメーター名を持つ Value-Map のサンプルです:

mf_lookup_04

 

Value-Map をプレビューする方法

Value-Map の作成後、コンポーネントのタイトルバーにマウスをかざすことによりマッピングから直接実装をプレビューすることができます:

mf_lookup_05

(C) 2020 Altova GmbH