【问题标题】:BizTalk pipeline custom component disassemble with no document schema没有文档架构的 BizTalk 管道自定义组件反汇编
【发布时间】:2018-08-14 17:07:55
【问题描述】:

我将根据存储在 SQL Server 数据库表中的业务逻辑来解析和格式化平面文件输入。我没有输入的文档模式。我为反汇编编写了一个 C# 自定义组件类。当我在接收管道的 Disassemble 阶段使用自定义组件时,我收到未找到文档架构的错误。

有没有人遇到过同样的情况并以不同的方式处理? .

【问题讨论】:

  • 有什么理由不使用平面文件模式来分解文件?然后让 SQL 中的任何逻辑稍后执行?另外,您的反汇编程序会发出什么消息?一个 XML 文档。你在 BizTalk 中有一个架构吗?
  • 我们有许多不同的消息类型/格式。它们中的大多数是复杂和动态的。所以平面文件模式没有帮助。在反汇编阶段,消息正文包含实际数据。不,我在 BizTalk 中没有用于此的架构。谢谢。
  • 你在反汇编阶段到底想做什么。 r u 将平面文件转换为 xml 或使用 xmlrecive 管道组件。最好发布您收到的确切错误消息。告诉我们更多关于你的意图
  • 问题是为什么你不能使用内置的平面文件反汇编器?拥有许多不同的输入格式一点也不稀奇。除非您遇到无法支持的平面文件这种非常非常不可能的情况,否则您只会使用自定义代码让事情变得更加困难。
  • 您能更详细地解释一下您在组件上做了什么吗?

标签: biztalk biztalk-2013 biztalk-pipelines


【解决方案1】:

BizTalk 使用消息上下文部分中的“MessageType”属性(命名空间 + 消息中 XML 的根节点名称)路由消息。你的设计没有这个,所以它不知道如何处理它。

你可以:

  • 通过解析和分配唯一的消息类型来分别处理每种类型的平面文件
  • 将内容提炼成一种类型的消息
  • 将文件内容包装在“信封”中

您需要为这些选择中的任何一个创建架构。

命名空间和路由是处理文件结构更改的好方法。如果您在命名空间中包含文件的版本,BizTalk 可以将消息路由到为您处理此类消息的代码。您可以继续处理旧式消息以及新格式。我们以这种方式处理试点项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    相关资源
    最近更新 更多