发送保留的批交换

当 EDI 发送管道处理保留的出站批交换时,会将批交换作为一个整体来处理。 在创建 EDI 交换时,它通常重用现有信封(控制)段,而不会基于协议应用信封。 当 入站批处理选项 属性设置为 “保留交换 - 出错时暂停交换”“保留交换 - 出错时暂停事务集”时,将发生这种情况。

架构验证

BizTalk Server 使用批架构和服务架构来验证保留批的信封。 批架构用于验证保留消息的根节点;服务架构用于验证交换、组和事务集标头及尾部。 有关批处理架构的详细信息,请参阅 EDI Batch 架构。 有关服务架构的详细信息,请参阅 EDI 服务和控制架构

BizTalk Server 使用项目中的文档架构来验证批处理交换中的文档。

发送端处理

当 EDI 组装器处理保留的交换时,使用的交换、组和事务集标头通常与收到批交换时存在于此批交换中的交换、组和事务集标头相同。

  • 对于 X12 交换,不同页面上的“协议属性”对话框中单向协议选项卡上的属性设置 (确定BizTalk Server如何创建传出交换) 的 ISA、GS 和 ST 标头。

  • 对于 EDIFACT 交换,通常使用协议属性中的 UNA 设置。 UNA 段在 EDIFACT 编码消息中是可选的,但对于序列化保留的批交换,该段则是必需的。 如果 XML 实例中的 UNA 段未设置值,将使用发送管道组件的默认属性值。 如果未对发送管道组件的属性赋值,那么将挂起保留批的中间 XML 消息。

  • 如果在自定义组件) 中保留 (交换时将上下文属性提升 EDI.PopulateInterchangeValues 为“True”,则发送端口中的 EdiAssembler 会将所有交换、组和事务集标头填充为协议属性中设置的值。

  • 如果在发送管道处理交换前将上下文属性提升 EDIOverride.OverrideEdiHeader 为“True”,可以通过设置适当的 EDIOverride 上下文属性值来替代出站文档的信封值。 有关详细信息,请参阅 重写 EDI 标头

    对于保留的没有任何错误的交换,组装器将保留各个事务集在该交换的组中的序列以及各个组在该交换中的序列。

注意

使用 XML 发送管道可以发送保留批。 但是,若要执行此操作,您需要更改批架构的命名空间。 有关详细信息,请参阅 使用 XML 发送管道发送保留的批处理

错误处理

由于 XML 中存在保留标记,EDI 发送管道将批处理 EDI 交换识别为保留批。 此标记 <X12InterchangeXml> 或 <EdifactInterchangeXml> 由 EDI 接收管道应用于 XML。

挂起的出错事务集具有以下特殊情况:

  • 如果组中的所有事务集无效,那么 EDI 发送管道将在生成的 EDI 中包含组控制段,但该组不包含任何事务集(因为将被删除)。 组页脚总数更新为零。 交换控制段保留不变。

  • 如果交换中的所有事务集无效,那么生成的 EDI 交换仍将包含交换控制段,但该交换将不包含任何事务集(因为将被删除)。 这会构成一个空交换。

  • 如果组控制段或交换控制段无效,则不会生成 EDI 编码的交换。 将在事件查看器中创建一个日志,指示已拒绝交换。

另请参阅

对传出 EDI 消息进行批处理