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

Altova MapForce 2020 Enterprise Edition

» このレベルの上のトピックは存在しません «

値を変更せずに Value-Map をパススルーさせる

スクロール ホーム トップ その他

このセクションでは、特定のノードデータを変換し、それ以外のノードデータをそのままのかたちでターゲットへ受け渡すといった状況について記述します。

 

このような状況の例として、役職名を変更する会社内部の例を取り上げます。役職に関する箇所だけが変更され、それ以外はそのまま残すようにします。

 

valtitle1

 

マッピングは、を特定のタイトルを変換するために value-map コンポーネントを使用する上のスクリーンショットのようになります。

「出力」 タブをクリックすると、マッピングの結果が表示されます:

 

valtitle3

 

Value-Map コンポーネント内にある値のどれにも当てはまらない場合、Title 要素が出力ファイルにて削除されることになります。

 

valtitle2

 

代替案:

それ以外チェックボックスをクリックして、代替となる値を入力することで、その値が出力ファイルに表示されることになります。しかしその場合、テーブルに入力されていない社内の役職全てが、同じ値で置き換えられてしまいます。

 

解決方法

Value-Map コンポーネントを含むユーザー定義関数を作成し、substitute-missing 関数を使用することで空のノードに対してオリジナルのデータを渡します。

 

1.Value-Map コンポーネントを選択し、「関数 | 選択からユーザー定義関数を作成」を選択します。

 

valtitle4

 

2.関数名に Pass-Through と入力し、「OK」をクリックします。

 

valtitle5

 

3.ライブラリペインの core | node 関数 にある substitute-missing 関数を挿入し、以下のスクリーンショットにあるような接続を行います。

 

valtitle6

 

4.出力ボタンをクリックして結果を確認します。

 

 

マッピングの結果:

 

Value-Map コンポーネントにある 2 つの役職がマッピングの結果に変換されます。

ソースファイルにあるその他の役職が、そのままのかたちでターゲットファイルへ書きこまれます。

 

valtitle7

 

動作の説明:

Value-Map コンポーネントは入力されたデータを評価します。

 

入力データが Value-Map の最初のカラムにある値のどれかとマッチした場合、データの変換が行われ、その値が substitute-missing 関数のパラメーターへ渡され、その後 Title2 へと渡されます。

 

入力データがカラムのデータにマッチしない場合、Value-Map コンポーネントの出力からノードパラメーターへ値が渡されることはなく、空のノードが渡されます。

 

空のノードが発生した場合、substitute-missing 関数によりオリジナルのノードが Title ノードから取得され、replace-with パラメーターへ渡された値が Title2 へと渡されます。

(C) 2019 Altova GmbH