Exemplos de linguagem de transformação

O exemplo abaixo mostra o comando "map", em que um campo único na entrada está sendo mapeado para um campo único na saída.

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

Qualquer parte dos dados contidos nesta origem que não estejam mapeados para um destino não estarão na saída. Cada campo deve ser mapeado especificamente.

Uma vez fornecidos os seguintes dados de entrada:

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

o TML acima geraria a seguinte saída:

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

Quando o TML processa cada comando, os destinos são "encaixados" para criar uma estrutura de documento geral.

O ordem na qual as informações dos parâmetros é fornecida não é importante, ou seja, o destino pode ser definido antes da origem ou vice-versa. Além disso, cada campo será gravado na saída na ordem em que for definido.

Desse modo, é possível modificar o TML acima para incluir um mapeamento para o campo de valor nos dados de exemplo, produzindo-o antes do campo de número de pedido.

<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>

A saída desse TML seria:

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

O TML também aceita vários campos de origem para um único campo de destino. Nesse caso, cada origem será gravada no destino na ordem em que for fornecida no TML. Os valores serão acrescentados. O exemplo abaixo demonstra isso.

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

A saída do TML seria:

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