通过Biztalk管道拆分消息并提升属性

时间:2013-12-11 17:52:45

标签: c# biztalk biztalk-2010

我正在使用sqlserver存储过程从SQL Server表中轮询格式良好的xml消息,该程序返回xml,如下所示

<PolledMessage xmlns="http://SomeNamespace.ru/">
  <Message>
    <MessageNode>
      <MasterDataMemberAddRequest xmlns="http://AnotherNamespace">
        ...
      </MasterDataMemberAddRequest>
    </MessageNode>
  </Message>
  <Message>
    <MessageNode>
      <MasterDataMemberAddRequest xmlns="http://AnotherNamespace">
        ...
      </MasterDataMemberAddRequest>
    </MessageNode>
  </Message>
</PolledMessage>

MessageNode 是一个节点,包含我要提取的消息。我已经使用带有XmlReceive管道的Envelope架构完成了这项工作,并且运行良好。但之后我需要为每个提取的消息的消息上下文写一些自定义值。我写了一个自定义管道,它接受属性名称,命名空间和值并将其写入消息上下文,但我无法弄清楚如何将反汇编和促销反汇编消息的属性放在一起。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:2)

阿尔森,

XMLReceive管道使用XML诈骗程序组件对您的信封进行处理,并will promote individual message properties将它们正确标记为context properties(假设它们在消息中!)

如果您需要将自定义非消息属性推送到每条消息中,您可以创建一个自定义管道并将管道组件放置在resolve party stage中的每个反汇编消息上。

enter image description here

这是自定义上下文属性提升组件的link。您将在示例中看到它被置于验证阶段 - 我相信验证或解析方都可以。希望这有帮助!