2

注文の詳細を含むスキーマがあります。スキーマ内には、注文内の各アイテムの詳細を含むライン アイテムのコレクションがあります。スキーマは次の構造に似ています。

Order
    SaleItems
        SaleItem
            OrderID
            Price
            Quantity 
            etc.

SaleItem 内の Quantity が 1 を超える場合、別の品目を作成し、価格を品目間で分割する必要があるという要件があります。たとえば、次のようになります。

Order
    SaleItems
        SaleItem
            OrderID  1234
            Price    99
            Quantity 3

出力に次のものが作成されるはずです。

Order
    SaleItems
        SaleItem
            OrderID  1234
            Price    33
            Quantity 1 
        SaleItem
            OrderID  1234
            Price    33
            Quantity 1  
        SaleItem
            OrderID  1234
            Price    33
            Quantity 1   

Biztalk の第一人者の中で、これを達成するための最善の方法をアドバイスしてくれる人はいますか? いくつかの機能を備えたマップでそれを行うのが最善かどうか、もしそうならマップに何を入れるか、または IF Quantity > 1 ロジックを実行するためのカスタムを備えたオーケストレーションでそれを行うのが最善かどうかはわかりません。ここで非常に単純なものが欠けているかもしれませんが、どんな助けも感謝して受け取ります。

リチャード

4

2 に答える 2

2

その変換をカスタム XSLT として記述し、Biztalk でそれを使用して変換を行うことができます。

于 2009-08-02T12:44:29.410 に答える
0

このマップが使用されるシナリオについては言及していませんが、オーケストレーション内でこの変換が必要な場合、最も簡単で迅速な解決策は、シリアル化されたメッセージで .NET ヘルパー クラスを使用することです。そのようにして、数量> 1の場合に言及したことを行うことができます...ロジックのタイプ。マップでもこれを実現できると確信していますが、BizTalk マッパーをいじったり、カスタム XSLT 開発を行ったりする必要があります。港でマップを利用する予定がある場合は、後のルートを選択する必要がある場合があります。

HTH

于 2009-08-03T10:39:09.113 に答える