BizTalk映射,嵌套的元素集合,需要帮助

时间:2009-08-02 12:30:58

标签: mapping nested biztalk elements

我有一个包含订单详细信息的架构。在架构中,我有一系列订单项,其中包含订单中每个商品的详细信息。 Schema类似于以下结构。

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数量> 1个逻辑。也许我在这里遗漏了一些非常简单的东西,但任何帮助都会感激不尽。

理查德

2 个答案:

答案 0 :(得分:2)

您可以将该转换编写为自定义XSLT,然后让Biztalk使用它来进行转换。

答案 1 :(得分:0)

您没有提到将使用此映射的方案,如果您需要在业务流程中进行此转换,那么最简单,最快捷的解决方案是利用带有序列化消息的.NET帮助程序类。通过这种方式,你可以做到,如果数量>你所提到的1 ...逻辑类型。我相信你也可以在地图中实现这一点,需要一些功能,使用BizTalk映射器或一些自定义XSLT开发。如果您计划在端口中使用地图,则可能需要选择以后的路线。

HTH