Сопоставление BizTalk, вложенные коллекции элементов, нужна помощь

У меня есть схема, содержащая детали заказа. В схеме у меня есть набор элементов строки, содержащих сведения о каждом элементе в заказе. Схема аналогична следующей структуре.

Order
    SaleItems
        SaleItem
            OrderID
            Price
            Quantity 
            etc.

У меня есть требование, чтобы, если количество в SaleItem больше 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. Может быть, я упускаю что-то очень простое, но любая помощь будет принята с благодарностью.

Ричард


person Community    schedule 02.08.2009    source источник


Ответы (2)


Вы можете написать это преобразование как пользовательский XSLT, а затем заставить Biztalk использовать его для выполнения преобразования.

person Shiraz Bhaiji    schedule 02.08.2009

Вы не упомянули сценарий, в котором эта карта будет использоваться, если вам нужно это преобразование внутри оркестровки, то самым простым и быстрым решением будет использование вспомогательных классов .NET с сериализованными сообщениями. Таким образом, вы можете сделать то, что вы упомянули, если qty > 1... тип логики. Я уверен, что вы сможете добиться этого и на карте, для этого потребуются некоторые действия с картографом BizTalk или некоторая пользовательская разработка XSLT. Возможно, вам придется выбрать более поздний маршрут, если вы планируете использовать карту в своих портах.

ХТН

person Saravana Kumar    schedule 03.08.2009