2016-09-22 77 views
0

我们的合作伙伴发送了一个EDIFACT,其中包含一些自定义细分。我已经更新了现有的edifact模式之一以拥有这些自定义细分。快乐的一天情景正在发挥作用。我们正在尝试实施负面情景。企业希望BizTalk在交换中处理成功的消息,并为失败的消息提出错误。我没有使用合作伙伴协议。在EDIFACT故障预置设置中,我已设置入站批处理选项以将交换拆分为事务集 - 暂停事务集错误。BizTalk EDIFACT子文档拆分

问题: 我的合作伙伴会在同一个事务集内(即在UNH-UNT内)发送多个数据(在我们的例子中为多个S01Loop)。如果我运用上面的逻辑,整个交换都失败了。

要求: 我们希望特定的循环数据失败,其余正数应该通过。

我试过的东西: 对于基于HIPAA的edifact文件,有一个叫做subdocument_break的概念。我在XSD中应用了这些注释。不幸的是它没有工作。

如果没有开箱即用的解决方案,我打算编写一个EDI分离器管道组件,它将是自定义的平面文件反汇编程序组件,它将多个数据拆分为不同的实例。然后我将使用EDI反汇编器来解析数据。

让我知道是否有人有BizTalk中可用的开箱即用功能来做到这一点。

回答

0

在这种情况下,子文档拆分不会有帮助,因为如果存在语法错误,则整个事务集无论如何都会失败。

这是有原因的。如果段不合格,解析器不能可靠地确定它的位置。

解决此问题的正确方法是将此类验证移到后面的过程中,以便在解析后检测无效消息。如果贸易伙伴发送真正无效的EDI,他们确实需要在他们的最后解决这个问题。