Демонстрационные данные в функции «Язык преобразований» (TML)

В этом разделе приводятся примеры команды сопоставления, где одно поле входных данных сопоставляется с одним полем выходных данных.

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

Любой фрагмент данных из источника без сопоставления с целью не будет представлен в выводе. Для каждого поля требуется специальное сопоставление. При использовании следующих входных данных:

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

TML сгенерирует такие выходные данные:

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

При обработке каждой команды при помощи TML все целевые фрагменты соединяются для создания единой структуры документа. Порядок представления информации параметров неважен, т.е. цель может быть определена до определения источника и наоборот. Кроме того, каждое поле записывается в выходных данных в порядке его определения. Таким образом, 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 будут выглядеть следующим образом:

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

TML также поддерживает несколько исходных полей для одного целевого поля. В этом случае каждое исходное поле записывается в целевое поле в порядке его появления в TML. Значения присоединяются, как показано в данном примере:

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