1

我有一个将订单消息发送到 SOAP 服务的销售订单编排。该消息包含订单标题元素以及一组重复的订单行项目。例子:

<Order>
   <Customer>cust123</Customer>
   <Foo>bar</Foo>
   <OrderLines>
      <Line>
         <ItemSku>123134</ItemSku>
         <Quantity>5</Quantity>
      </Line>
      <Line>
         <ItemSku>56789</ItemSku>
         <Quantity>8</Quantity>
      </Line>
   </OrderLines>
</Order>

我需要为 SOAP 调用失败(无论原因是什么,例如网络问题等)引入一个“备份计划”。我被要求获取 XML 消息并转换为一组表示订单标题和订单行的平面文件(管道分隔),然后将文件发送到共享,该共享将按计划由另一个进程扫描导入到与 SOAP 服务相同的后端系统。

换句话说,我需要将 XML 分解/拆分为单独的文件,因为一个文件用于订单标题,另一个文件用于订单行项目。请注意,我的实际场景还有其他文件在订单中重复节点,但场景与订单行项目完全相同,所以我在这里保持简单。

我看过很多关于分批等的帖子,但似乎没有一个符合上述情况。

在 BizTalk 2013 R2 中完成此任务的最佳方法是什么?是否可以在发送端口完成,或者这是否涉及自定义编码?请提供步骤,如果可能的话,还请提供任何相关文章资源的链接。谢谢!

4

1 回答 1

4

它可以在发送端口级别完成。

有两个新端口订阅该消息。

拥有一个映射到您的平面文件头模式的映射和一个用于组装头平面文件的管道

拥有将订单行映射到您的详细订单行平面文件架构的第二个端口和一个用于组装详细信息平面文件的管道。

然后,只需在 SOAP 失败时将消息发布到消息框即可。您可能必须在具有决策形状的编排中执行此操作。

于 2015-08-26T01:12:42.073 回答