Картографирование BizTalk, вложенные коллекции элементов, необходимая помощь - PullRequest
2 голосов
/ 02 августа 2009

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

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   

Может ли кто-нибудь из вас, гуру Бизталка, посоветовать один из лучших способов сделать это? Я не знаю, лучше ли было бы сделать это на карте с некоторыми из функций и, если да, что добавить в карту, или в оркестровке с каким-то обычаем для выполнения логики «Количество> 1». Может быть, я упускаю что-то очень простое здесь, но любая помощь будет с благодарностью получена.

Richard

Ответы [ 2 ]

2 голосов
/ 02 августа 2009

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

0 голосов
/ 03 августа 2009

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

НТН

...