マージされたエントリを異なるノードに分割する

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce と EDI > EDI 構造のカスタム化 >

マージされたエントリを異なるノードに分割する

MapForce によりデフォルトで与えられる EDI 構成ファイル内のデータ要素の一部は、 ソース EDI ファイル 内で対応するデータ要素が複数回発生する可能性があるにも関わらず、マッピング上で1つのノードのみを表示するように構成されている場合があります(次も参照: 複数の連続したデータ要素の扱い)。このようなデータ要素の一例は、 UN/EDIFACT 標準の F3036 です。仕様に従うと、 F3036 は、("Party name") 複合内の  C080 内で連続して5回まで発生することができます(次を参照: http://www.unece.org/fileadmin/DAM/trade/untdid/d15b/trcd/trcdc080.htm)。

 

MapForce 内のデフォルトの UN/EDIFACT コレクションでは、データ要素 F3036 は、マッピング上で単一のノードで表示されています。マッピング接続をこのノードからターゲットノードに描くと、ソース内の F3036 の発生が存在するため、接続はターゲット内に制限なくアイテムを作成することができます。 (これには、ソース内の各アイテムのために、ターゲット内に1つのアイテムが作成される MapForce 接続の基本ルールに従っています。)。 しかしながら、これが希望される結果ではない場合、データ要素の各発生のために個別のノードが必要とされます。

 

この例の目的は、ですから、 F3036 の各発生のための個別のマッピングノードを表示するカスタム UN/EDIFACT 構成を作成することです。 下のイメージは、カスタム化の前後の EDIFACT マッピングコンポーネントを表示しています。

 

mf_edi_f3036_merged

mf_edi_f3036_unmerged

カスタム化の前

カスタム化の後

 

F3036 データ要素を複数のマッピングノードに以下のように分割します:

 

1.既存の UN/EDIFACT コレクションを開始点として使用し、 カスタム EDI コレクションを作成します(次を参照: カスタム EDI コレクションの作成)。これにより、変更は、 EDI 構成には、影響をおよばさないことを保証します。
2.XML エディター内でカスタム コレクションの EDSD.Segment ファイルを開きます。(EDI フレーバーをカスタム化する場合、 特定の EDI フレーバーの対応する .segment ファイル を変更します。例えば、 X12 のためには、 X12.Segment ファイルになります。)
3.複合 C080 を検索し、F3036 データ要素の mergedEntries="5" 属性を削除します。

<Composite name="C080" info="PARTY NAME">
  <Data ref="F3036" mergedEntries="5"/>
  <Data ref="F3045" minOccurs="0"/>
</Composite>

4.minOccurs="0" 属性を、最初のフィールド以外のすべてのフィールドに追加します。理由は、UN/EDIFACT 標準によると、フィールドの最初の発生のみが必須であるからです。その他は任意です。
5.各フィールドのために一意のノード名を入力します (例えば、 F3036_1、 F3036_2、 など)。この時点では、 構成は以下のようになります:

<Composite name="C080" info="PARTY NAME">
  <Data ref="F3036" nodeName="F3036_1"/>
  <Data ref="F3036" nodeName="F3036_2" minOccurs="0"/>
  <Data ref="F3036" nodeName="F3036_3" minOccurs="0"/>
  <Data ref="F3036" nodeName="F3036_4" minOccurs="0"/>
  <Data ref="F3036" nodeName="F3036_5" minOccurs="0"/>
  <Data ref="F3045" minOccurs="0"/>
</Composite>

6.EDSD.Segment ファイルを保存して編集します。

 

MapForce 内で変更された EDI コレクションを以下の方法で確認、および作業することができます:

 

1.「挿入」 メニューから、「EDI」 をクリックします。
2.プロンプトされると、作成済みのカスタムコレクションを選択します (このサンプルでは、 "EDIFACT.Custom")。
3.C080 セグメントを使用するメッセージ型を選択してください (このサンプルでは、 "ORDERS - Purchase Order Message")。

mf_edi_split

 

変更された EDI コンポーネントが MapForce 内に表示されます( F3036 データ要素の各発生には、マッピング上で個別のノードが存在します)。

mf_edi_f3036_unmerged

EDI フレーバーに関係なく、このサンプル内で説明されているこのテクニックは、他のデータ要素のためにマージされたエントリを分割するために使用することができます。


(C) 2019 Altova GmbH