BizTalk マップを使用して、次のことを行う良い方法があるかどうかを考えています。
受信した請求書を注文のリストにマップする必要があります。ただし、各注文には 2 つの項目のみを含める必要があります (請求書の番号が偶数であると仮定します)。
これは、Invoice(1, 2, 3, 4) を Orders(Order (1, 2), Order (3, 4)) にマップする必要があることを意味します。
基本的に、新しい親要素を作成する必要があるのは(index % 2 == 0)
.
これを行うFunctoid のみの方法はありますか?
以下の XML の例:
<Invoice>
<Client>Client1</Client>
<Line>
<Code>1</Code>
<Price>$1.00</Price>
<Qty>1</Qty>
</Line>
<Line>
<Code>2</Code>
<Price>$2.00</Price>
<Qty>2</Qty>
</Line>
<Line>
<Code>3</Code>
<Price>$3.00</Price>
<Qty>3</Qty>
</Line>
<Line>
<Code>4</Code>
<Price>$4.00</Price>
<Qty>4</Qty>
</Line>
</Invoice>
に
<Orders>
<Order>
<Client>Client1</Client>
<OrderItem>
<Code>1</Code>
<Qty>1</Qty>
</OrderItem>
<OrderItem>
<Code>2</Code>
<Qty>2</Qty>
</OrderItem>
</Order>
<Order>
<Client>Client1</Client>
<OrderItem>
<Code>3</Code>
<Qty>3</Qty>
</OrderItem>
<OrderItem>
<Code>4</Code>
<Qty>4</Qty>
</OrderItem>
</Order>
</Orders>
私が試したこと:
- 標準マッピング: 予想どおり、すべての行を含む単一の注文
- 以下に基づくクライアントへの値のマッピング
index % 2
: 行ごとの注文 (半分はクライアントを持っています) - Table Looping (Gated to
index % 2
) + Extractor to Client : 行ごとに注文、半分の行のみ
私がやりそうなこと:
- XSLT
- または、マッピング後の C# 操作