入站格式错误的 X12 文件时,BizTalk 中是否可能缺少 TA1 和 999?
Is it possible that both TA1 and 999 missing in BizTalk when inbounding a bad formatted X12 file?
第一次遇到这种情况。
通常在我们收到入站 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 以拒绝入站文件。但是创建了这 2 个文件中的 none 个。
我的问题:
- 我应该为这种错误创建什么文件? 999 或
TA1?
- 这是 BizTalk 的错误还是正常行为?
- 如果这是正常的,捕获此错误的最佳机制是什么?
回复贸易伙伴。
您绝对不应期待 999(这将是特定于事务集的),因为此错误根本阻止 BizTalk 解析事务集 - 它没有可靠的方法来确定它是哪种事务.
TA1 可能是合适的,但这似乎是一个灰色区域 - 可能值得联系 Microsoft 支持。 documentation indicates that an invalid ISA should result in a negative TA1, but the error codes for TA1 没有将此特定场景列为支持(或根本不支持)的场景。
一种可能的解决方法是捕获此类消息,为其生成 TA1,然后将其路由回 TP。但是,使用非唯一分隔符可能无法从消息本身确定 TP,即使您可能能够从上下文中确定它(但如果多个贸易伙伴使用相同的 ports/locations,则可能无法确定)。我的猜测是这就是 BizTalk 不能开箱即用地正确处理它的原因。老实说,除非这种情况经常发生,否则 easier/more 可以通过人工干预在例外情况下处理它。
就捕获消息而言,我认为您需要一个自定义管道组件——甚至可能是 EdiDisassembler 的子类,这样您就可以捕获这个特定的异常并进行处理。
第一次遇到这种情况。
通常在我们收到入站 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 以拒绝入站文件。但是创建了这 2 个文件中的 none 个。
我的问题:
- 我应该为这种错误创建什么文件? 999 或 TA1?
- 这是 BizTalk 的错误还是正常行为?
- 如果这是正常的,捕获此错误的最佳机制是什么? 回复贸易伙伴。
您绝对不应期待 999(这将是特定于事务集的),因为此错误根本阻止 BizTalk 解析事务集 - 它没有可靠的方法来确定它是哪种事务.
TA1 可能是合适的,但这似乎是一个灰色区域 - 可能值得联系 Microsoft 支持。 documentation indicates that an invalid ISA should result in a negative TA1, but the error codes for TA1 没有将此特定场景列为支持(或根本不支持)的场景。
一种可能的解决方法是捕获此类消息,为其生成 TA1,然后将其路由回 TP。但是,使用非唯一分隔符可能无法从消息本身确定 TP,即使您可能能够从上下文中确定它(但如果多个贸易伙伴使用相同的 ports/locations,则可能无法确定)。我的猜测是这就是 BizTalk 不能开箱即用地正确处理它的原因。老实说,除非这种情况经常发生,否则 easier/more 可以通过人工干预在例外情况下处理它。
就捕获消息而言,我认为您需要一个自定义管道组件——甚至可能是 EdiDisassembler 的子类,这样您就可以捕获这个特定的异常并进行处理。