2

我有一个包含订单详细信息的架构。在架构中,我有一个包含订单中每个项目详细信息的行项目集合。Schema 类似于以下结构。

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 帮助程序类。这样,您就可以做到,如果 qty > 1 ... 类型的逻辑,您所提到的。我相信您也可以在地图中实现这一点,需要一些 BizTalk 映射器或一些自定义 XSLT 开发。如果您打算在港口使用地图,您可能需要选择后面的路线。

高温高压

于 2009-08-03T10:39:09.113 回答