uCosminexus Interschema ユーザーズガイド
ここでは,データの要素の値によって,出力先の要素の値を変えてマッピングする方法について説明します。
これまでの例では,値を持つ要素「単位」は,入力側の要素「単位」を出力側の要素「単位」にそのまま代入するマップ式を定義しました。ここでは,メッセージの要素「単位」の値によって,出力先のメッセージの要素「単位」の値に変えてマッピングする例について説明します。固定長形式のフォーマット「FIX2」からセパレータ形式のフォーマット「SEPA2」へマッピングします。データの構造を図4-13に示します。
図4-13 フォーマット「FIX2」「SEPA2」のデータの構造
固定長形式のフォーマット「FIX2」及びセパレータ形式のフォーマット「SEPA2」の要素「単位」は,値とその意味はすべて同じです。値とその意味を次に示します。
- 値「PC」,意味「個」
- 値「KG」,意味「キログラム」
- 値「M」,意味「メートル」
要素の値同士を対応付けるには,値をマッピングします。
- 入力側及び出力側のコンポーネント「単位」を選択します
- [ツール]−[マップ式]−[値マッピング]を選択します
「単位」は値を定義した要素なので,[値マッピング]ダイアログが表示されます。
図4-14 [値マッピング]ダイアログ
要素に定義した値が一覧表示されます。このダイアログで,入力要素のどの値を出力要素のどの値として出力するかを対応付けます。
この例ではまず,値「PC」をマッピングします。
- 入力側の値「PC」と出力側の値「PC」を選択し,[<<]ボタンをクリックします
値を選択する場合は「#」欄でインデクスを選択します。
入力側の一覧の出力値欄にマッピングしたことを示すインデクスが表示されます。このインデクス番号は,出力側の値のインデクスを表しています。この欄にインデクス番号が表示されていない値は,出力側の値がマッピングされていないことになります。
ここでは,出力側のインデクス1の値「PC」をマッピングしたので,入力側の値「PC」の出力値欄には,インデクス「1」が表示されます。
同様に,入力側の値「KG」と出力側の値「KG」,入力側の値「M」と出力側の値「M」をマッピングします。
値のマッピングは,入力側の値すべてがマッピングされていないとエラーになるので,必ず各値をマッピングしてください。また,この例では値の内容が一致しているため,同じ値同士をマッピングしましたが,異なる値同士でもマッピングできます。ただし,複数の入力要素の値は一つの出力要素の値へマッピングできても,一つの入力要素の値を複数の出力要素の値へマッピングできません。また,入力側又は出力側のどちらかの値をダブルクリックすると,相手側の対応する値が選択されます。
- 値のマッピングが済んだら,[OK]ボタンをクリックします
[値マッピング]ダイアログが閉じると,マップビューには値のマッピング結果が表示されます。
= VALUEMAP(FIX2@MSG2@単位,#,1,1,2,2,3,3);
VALUEMAP関数は,要素の値同士をマッピングする関数です。VALUEMAP関数の引数について説明します。
- 第1引数
入力側の要素名
- 第2引数
出力側の要素名(通常はマップ式を定義した自コンポーネント「#」を表します)
- 第3引数以降
入力値と出力値のインデクスを対応する組ごとに記述したもの
以上で値同士のマッピングが定義できました。
All Rights Reserved, Copyright (C) 2000, Information-technology Promotion Agency, Japan.
All Rights Reserved. Copyright (C) 2005, 2008, Hitachi, Ltd.
All Rights Reserved, Copyright (C) 1985-1998, Microsoft Corporation.