0

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

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

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

我尝试过的:对于基于 HIPAA 的 edifact 文件,有一个名为 subdocument_break 的概念。我在 XSD 中应用了这些注释。不幸的是,它没有用。

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

让我知道是否有人在 BizTalk 中提供了开箱即用的功能来执行此操作。

4

1 回答 1

0

在这种情况下,子文档拆分将无济于事,因为如果出现语法错误,整个事务集无论如何都会失败。

有一个原因。如果段乱序,解析器就不能可靠地确定它的位置。

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

于 2016-09-22T20:20:13.087 回答