在绑定格式错误的X12文件时,BizTalk中是否可能同时缺少TA1和999?

在绑定格式错误的X12文件时,BizTalk中是否可能同时缺少TA1和999?,biztalk,edi,biztalk-2013,x12,Biztalk,Edi,Biztalk 2013,X12,这是我第一次见到这个 通常当我们收到入站X12文件时。将始终生成999(通过BizTalk中的配置),如果发生交换级别错误,将创建TA1 但今天我得到一个X12文件,其中有一些格式错误,BizTalk中弹出的错误是: Delimiters are not unique, field and component seperator are the same. The sequence number of the suspended message is 1. 我希望生成999或TA1以拒绝

这是我第一次见到这个

通常当我们收到入站X12文件时。将始终生成999(通过BizTalk中的配置),如果发生交换级别错误,将创建TA1

但今天我得到一个X12文件,其中有一些格式错误,BizTalk中弹出的错误是:

 Delimiters are not unique, field and component seperator are the same.
 The sequence number of the suspended message is 1. 
我希望生成999或TA1以拒绝入站文件。但这两个文件都没有创建

我的问题:

  • 我应该为这种错误创建什么文件?999或 TA1
  • 这是BizTalk的错误还是正常行为
  • 如果这是正常的,那么捕获此错误和错误的最佳机制是什么 回复贸易伙伴

您绝对不应该期望出现999(这是特定于事务集的),因为此错误会阻止BizTalk解析事务集—它没有可靠的方法来确定它是哪种事务

TA1可能是合适的,但这似乎是一个灰色区域-可能值得联系Microsoft支持人员。指示无效的ISA应导致负面TA1,但未将此特定场景列为支持(或根本不支持)的场景

一种可能的解决方法是捕获此类消息,为其生成TA1,并将其路由回TP。但是,使用非唯一分隔符可能会使您无法从消息本身确定TP,即使您可以从上下文中确定TP(但如果多个贸易伙伴使用相同的端口/位置,则可能无法确定)。我的猜测是,这就是为什么BizTalk没有开箱即用地正确处理它的原因。老实说,除非这种情况发生得相当频繁,否则在例外情况下通过人工干预可能更容易/更现实地处理它

至于捕获消息,我认为您需要一个定制的管道组件,甚至可能需要对EDI反汇编程序进行子类化,这样您就可以捕获这个特殊的异常并处理它