代码之家  ›  专栏  ›  技术社区  ›  mirezus

biztalk平面文件消息路由失败

  •  1
  • mirezus  · 技术社区  · 14 年前

    我在Web上发现了一些断开的线程,人们声称可以在具有XLangMessage类型的业务流程中使用接收形状来接收无法组装到特定XSD中的平面文件架构文件。

    我试图将接收形状中的MessageType设置为Microsoft.xlangs.basetypes.xlangMessage,但此BaseType不可序列化。这将导致生成错误。

    是否有一种对象类型既可以捕获格式良好的XML消息的XML文档,也可以捕获格式不正确的XML和未组装的平面文件?

    1 回复  |  直到 14 年前
        1
  •  0
  •   David Hall    14 年前

    用粗体回答你的直接问题-是的,你要找的类型是 System.Xml.XmlDocument

    您需要做的是创建一个新消息,在选择其类型时,从.NET类部分选择上面的类型。

    当分配给接收形状时,此消息可以接收任何负载,例如,我经常使用此消息通过biztalk传递格式(如.pdf文件),而无需解析这些格式。但是,请注意,尽管有这个名称,这里的内容并不是XML,如果您尝试并处理它,将会导致各种各样的问题。


    再深入一点你的问题-你是想做一些错误处理编排?

    如果您在错误处理代码中,则可以使用Recieve形状来接收类型为的消息 XmlDocument 其筛选器表达式设置为errorReport.errorType==“failedMessage”,该表达式绑定到附加到消息框的直接绑定端口。

    我经常发现有两个接收形状很方便,一个用于捕获路由失败,当我们有任何可能的负载时,另一个用于订阅强类型错误包装器信封,您可以从其他业务流程的catchexception形状中定义和传递该信封。

    这意味着您可以建立一个集中的地方来处理所有异常。


    如果你没看过,有一个很好的 post by Charles Young 这可能会描述一些类似于你正在尝试做的事情。

    推荐文章