Transformation Language の例

入力データの 1 つのフィールドを出力データの 1 つのフィールドにマッピングする map コマンドの例を次に示します。

<transformation>
		<map>
				<target>FredsMart/PurchaseOrder/OrderRef</target>
				<source>SSC/Payload/SalesOrder/OrderNum</source>
		</map>
</transformation>

target にマッピングされない source を含むデータ部分は出力されません。各フィールドをそれぞれマッピングする必要があります。

次の入力データを例に示します。

<SSC>
  <Payload>
				<SalesOrder>
						<OrderNum>123456</OrderNum>
						<Amount>12.34</Amount>
				</SalesOrder>
  </Payload>
</SSC>

上記の SSTL から次の出力データが生成されます。

<FredsMart>
		<PurchaseOrder >> 123456</OrderRef>
		</PurchaseOrder>
</FredsMart>

TML によって各コマンドが処理されるとき、target が結合され、全体の文章構造が作成されます。

パラメータ情報が与えられる順序は重要ではありません。target を source の前に定義することも、source を target の前に定義することもできます。さらに、各フィールドは、定義された順序で出力データに書き込まれます。

このため、上記の TML を修正してサンプルデータの金額フィールドへのマッピングを含め、オーダー番号フィールドの前に出力することができます。

<transformation>
		<map>
				<source>SSC/Payload/SalesOrder/Amount/</source>
 			    <target>FredsMart/PurchaseOrder/TotalAmount</target>
		</map>
		<map>
				<target>FredsMart/PurchaseOrder/OrderRef</target>
				<source>SSC/Payload/SalesOrder/OrderNum</source>
		</map>
</transformation>

TML の出力データは次のようになります。

<FredsMart>
		<PurchaseOrder>
				<TotalAmount>12.34</TotalAmount>
				<OrderRef>123456</OrderRef>
		</PurchaseOrder>
</FredsMart>

また、TML は 1 つの target フィールドに対して複数の source フィールドをサポートします。この場合、各 source は TML で指定された順序で target に書き込まれます。値は付加されます。次に例を示します。

<transformation>
  <map>
				<target>FredsMart/PurchaseOrder/OrderRef</target>
				<source>SSC/Payload/SalesOrder/OrderNum/</source>
				<source>SSC/Payload/SalesOrder/Amount</source>
  </map>
<transformation>

TML の出力データは次のようになります。

<FredsMart>
  <PurchaseOrder>
				<OrderRef>123456</OrderRef>
		</PurchaseOrder>
</FredsMart>