複数の連続したデータ要素の扱い

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

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

複数の連続したデータ要素の扱い

EDI セグメントは、同じ名前の複数の連続した要素の使用を許可します。例えば、 X12 標準の "850 - PURCHASE ORDER" トランザクションセットの N2 セグメントに適用することができます。仕様に従うと、N2 セグメントは、(1つの必須、1つの任意) 2つの連続した英数字 "Name" フィールド を許可します:

mergedx12-2

 

EDI 構成を作成、または、変更するために、データ要素を扱うには以下の2つの可能性があります。

 

アプローチ 1: 各連続したデータ要素のための個別の マッピング ノードを作成する

このアプローチでは、セグメント ファイル内のデータ要素の複数の発生を作成します。この場合、 新規のノードは、データ要素の各発生のためにマッピング上に表示されます。この構成を考慮してください:

 

<Segment name="N2" info="Additional Name Information">
  <Data ref="F93" nodeName="F93_1"/>
  <Data ref="F93" minOccurs="0" nodeName="F93_2"/>        
</Segment>

 

マッピング上では、この構成は、2つの個別の F93 ノード, を作成します。それぞれは、 F93 の発生に対応しています :

mf_edi_f93_unmerged

個別の F93 ノードを持つ X12 EDI コンポーネント

このアプローチの使用は、データ要素の発生が意味を成す場合役にたちます。このため、マッピング上に個別のノードを表示するためにも役に立ちます。

 

アプローチ 2: データ要素のすべての発生のために単一ノードを作成する

このアプローチでは、データ要素のすべての発生を単一のノードとして扱います。これを行うには、 属性を対応するデータ要素に追加します。下のコードリスト内は、データ要素 F93 の mergedEntries 属性 は "2" に設定されています。EDI インスタンス ファイル内のこのフィールドの 2つの連続した 発生を許可します。

 

<Segment name="N2" info="Additional Name Information">
  <Data ref="F93" mergedEntries="2"/>
</Segment>

 

マッピング上では、 F93 データ要素に対応するノードは、単一ノードとして表示されます:

mf_edi_f93_merged

個別の F93 ノードを持つ X12 EDI コンポーネント

ソース EDI ファイルにこの要素の(空ではない)複数の発生が存在する場合、エントリをマージした データ要素からのデータのマッピングは、ターゲット側に複数の複数要素を作成します。例えば、 N2 セグメントが2つの連続した発生を含む箇所のソース EDI ファイルを想定します。最初の発生は、 "Michelle Butler" で、2番目の発生は、 "Mrs" です。

 

N2+Michelle Butler+Mrs+'

 

このような EDI ファイルからのデータのマッピングは、ターゲット側に次の出力を作成します  ( <ContactName> の発生に注意してください):

 

<Customer>
    <Number>123</Number>
    <ContactName>Michelle Butler</ContactName>
    <ContactName>Mrs</ContactName>
    <CompanyName>Nanonull, Inc.</CompanyName>    
</Customer>

 

データ要素の各発生が意味をなさない場合、また、各発生のために、マッピングに表示するためにノードを分割することを希望しない場合、このアプローチの使用は適切です。 例えば、複数の発生を持つデータ要素は、住所を構成する複数のラインエントリを保管することができます。このような場合、 "マージされたエントリ" のアプローチは、各住所のラインのために個別のノードを使用するよりも役に立つ可能性があります。

 

MapForce によりデフォルトで与えられる構成ファイルの一部は、マージされたエントリを使用する場合があり、このため、データ要素の複数の連続した発生のためのマッピング上で1つのノードのみが表示されます。データ要素の各発生のために、個別のノードが必要な場合は、 EDI 構成をカスタム化して行ってください。 例えば、次を参照してください マージされたエントリを異なるノードに分割する


(C) 2019 Altova GmbH