【问题标题】:BizTalk ExecuteReceivePipeline can't accept XmdlDocument parameterBizTalk ExecuteReceivePipeline 不能接受 XmdlDocument 参数
【发布时间】:2017-04-22 17:43:59
【问题描述】:

我正在尝试从编排中调用接收管道,以捕获任何类型的 flatfile_to_xml 错误。

搜索教程后,过程似乎很容易。 添加了库,创建了我的 xmlDocument 类型的 inputMsg 以包含任何非 Xml 有效负载(在我的情况下是我的 file.txt 的内容),并创建了一个包含以下表达式的原子范围:

  Microsoft.XLANGs.Pipeline.XLANGPipelineManager
     .ExecuteReceivePipeline(typeof(namespace.pipelineName), msgIN);

太糟糕了,我知道 ExecuteReceivePipeline 不能接受 XmlDocument,而它只接受 Microsoft.XLANGs.BaseType.XLANGMessage)。

Cannot connvert from 'System.Xml.XmlDocument' to 'Microsoft.XLANGs.BaseTypes.XLANGMEssage'

为什么会这样,我该如何实现我想要实现的目标?

【问题讨论】:

  • 为什么需要在 Orchestration 中执行此操作?只需在端口上安装管道并为失败的消息设置路由即可。然后订阅失败的消息来处理失败的消息
  • 因为我被要求生成一个新文件以发送到第二个目录。文件包含异常详细信息、处理阶段(范围,要明确)和原始消息(文本内容),以便发送文件的公司可以将故障原因与原始故障消息进行比较并发送一个新的更正。从经典管道中,我只能订阅平面文件的 messageType 并保存,不能使用异常详细信息。如果可以的话,我仍然会得到单独的消息。

标签: biztalk flat-file biztalk2006r2 biztalk-orchestrations biztalk-pipelines


【解决方案1】:

好的,现在它正在工作,我不知道为什么。 起初,XmlDocument 类型的 msgIN 未被接受为有效参数。 然后我创建了一个 XmlDocument 类型的 msgType,并将其指定为消息的类型,以便调用:

ExecuteReceivePipeline(typeof(namespace.pipelineName), msgIN)

将是有效的。经过多次重建和部署后,我切换回了 msgIn 作为 XmlDocument ......它按预期工作......

我不明白,但这不是第一次重建或重新打开 VS 解决了我的难题。 感谢那些抽空回答的人!

【讨论】:

    【解决方案2】:

    您必须使用 XmlDocument 类型的 消息变量

    看起来您正在使用 XmlDocument 类型的变量

    【讨论】:

    • 事实并非如此。我开始使用 XmlDocument 类型的消息并且首先获得了错误。我现在使用带有 XmlDocument 类型的消息部分的 Msg,因为(我不知道这一点)Msg 本质上是一个 XLANGMessage,其中包含任何类型的多部分,包括 XmlDocument。如果我不尝试捕获任何类型的管道错误,我的编排现在可以正常工作,否则我会收到类型为 Data 在根级别无效的 XmlException。第 1 行,位置 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2019-11-06
    • 2015-12-15
    相关资源
    最近更新 更多