我们的合作伙伴发送的EDIFACT包含一些自定义细分。我更新了一个现有的edifact模式以获得这些自定义段。快乐的一天情景正在发挥作用。我们现在正在尝试实施负面情景。企业希望BizTalk在交换中处理成功的消息,并为失败的消息引发错误。我没有使用合作伙伴协议。在EDIFACT回退设置中,我已设置入站批处理选项以将交换拆分为事务集 - 在出错时暂停事务集。
问题: 我的合作伙伴将在同一交易集内(即在UNH-UNT内)发送多个数据(在我们的例子中,多个S01Loop)。如果我应用上述逻辑,则整个交换失败。
要求: 我们希望特定的循环数据失败,剩下的正数应该通过。
我尝试过: 对于基于HIPAA的edifact文件,有一个名为subdocument_break的概念。我在XSD中应用了这些注释。不幸的是它没有用。
如果没有开箱即用的解决方案,我打算编写一个EDI拆分器管道组件,它将是自定义平面文件反汇编程序组件,它将多个数据拆分为单独的实例。然后我将使用EDI反汇编程序来解析数据。
如果有人在BizTalk中提供开箱即用的功能,请告诉我这样做。
答案 0 :(得分:0)
在这种情况下,Sub Document Splitting将无济于事,因为如果存在语法错误,整个事务集将无论如何都会失败。
这是有原因的。如果段无序,则解析器无法可靠地确定它的位置。
处理此问题的正确方法是将此类验证移至过程的后期,以便在解析后检测到无效消息。如果贸易伙伴正在发送真正无效的EDI,他们确实需要在他们的最后解决这个问题。