重写 EDI 标头

发送 EDI 编码的交换时,应用于消息的 EDI 信封通常基于接收协议的 EDI 属性或回退协议属性。 但是,根据运行时生成的值设置 EDI 信封属性通常很有用。

在 BizTalk Server 中,可以使用 EdiOverride 上下文属性指定用于在出站文档上生成 EDI 信封的值。

使用 EdiOverride 上下文属性

EdiOverride 上下文属性提供了替代用于生成 EDI 信封的值的所有或部分的方法。 EDI 发送管道将使用包含有效值的 EdiOverride 上下文属性来构造信封。 如果未填充属性,则管道将使用协议属性中指定的值或回退协议属性(如果未定义协议)。 如果属性包含无效值,管道将挂起消息并报告验证错误。

注释

仅当EdiOverride.OverrideEdiHeader属性被写入消息上下文并且包含值“True”时,才使用 EdiOverride 集合中指定的值。

未设置默认值。

X12 信封值的 EdiOverride 属性

下表显示了 EdiOverride 上下文属性和相应的 X12 信封标头:

标题 性能
交换控制标头 (ISA) ISA01、ISA02、ISA03、ISA04、ISA05、ISA06、ISA07、ISA08、ISA09、ISA10、ISA11、ISA12、ISA13、ISA14、ISA15、ISA16
功能组标头 (GS) GS01、GS02、GS03、GS04、GS05、GS06、GS07、GS08
事务集标头 ST02

EDIFACT信封值的EdiOverride属性

下表显示了 EdiOverride 上下文属性和相应的 EDIFACT 信封段:

细分市场 性能
服务字符串建议 (UNA) UNA1、UNA2、UNA3、UNA4、UNA5、UNA6、UNA6Suffix
交换控制标头 (UNB) UNB1_1、UNB1_2、UNB2_1、UNB2_2、UNB2_3、UNB3_1、UNB3_2、UNB3_3、UNB4_1、UNB4_2、UNB5、UNB6_1、UNB7、UNB8、UNB9、UNB10、UNB11
函数组标头 (UNG) UNG1、UNG2_1、UNG2_2、UNG3_1、UNG3_2、UNG4_1、UNG4_2、UNG5、UNG6、UNG7_1、UNG7_2、UNG7_3、UNG8
消息头(UNH) UNH1

由于 UNA 和 UNG EDIFACT 段是可选的,因此,无论 应用 UNA 段 协议设置如何,GenerateUNA 和 GenerateUNG 属性都可用于确定是否生成这些标头。 下表显示了导致生成这些段的值:

GenerateUNA 上下文属性 应用 UNA 段协议设置 引擎行为
真实的 已检查 生成 UNA
不受控制 生成 UNA
已检查 不生成 UNA
未受控制的 不生成UNA
不存在(因为 OverrideEDIHeader 为 false) 已检查 生成 UNA
不存在(因为 OverrideEDIHeader 为 false) 未受控制的 不生成 UNA
GenerateUNG 上下文属性 应用 UNG 段协议设置 引擎行为
已检查 生成 UNG
未受控制的 生成 UNG
已检查 不生成 UNG
未受控制的 不生成 UNG
不存在(因为 OverrideEDIHeader 为 false) 已检查 生成 UNG
不存在(因为 OverrideEDIHeader 为 false) 未受控制的 不生成 UNG

分组信封

组信封提出了一个特殊的挑战,因为信息交换中可能同时存在多个组。 若要解决此问题,EDI 发送管道可以将信封应用于交换中的所有组,也可以将信封应用于交换中唯一的组。

对于单个事务,可以重写所有 GS 或 UNG 字段,对于批处理交换,只能重写以下字段:

  • GS04

  • GS05

  • UNG4_1

  • UNG4_2

批处理

批处理编排负责覆盖批处理消息的事务集控制编号。 可以将以下属性写入要批处理以重写事务集控制编号的任何消息的上下文:

  • ST02(适用于 X12 消息)

  • UNH1 (对于 EDIFACT 消息

注释

如果多个入站消息在同一组中包含相同的控制编号,则将挂起那些具有重复控制编号的消息。

注释

对于要批处理的消息,请勿提升 EdiOverride 上下文属性 ISA、UNA、GS 或 UNG。 如果需要重写这些属性,请在发送到 EDI 发送管道之前在批处理业务流程的输出消息上升级它们。

分隔符冲突

分隔符(如 UNA 标头)必须包含每个字段的唯一值。 重写分隔符值(如 UNA 标头)时,必须确保每个分隔符值不仅在重写的值内是唯一的,而且在协议或回退协议设置中使用的任何分隔符值之间。

例如,如果重写 UNA1、UNA2、UNA4,而 UNA3、UNA5、UNA6 和 UNA6Suffix 来源于协议属性,则每个属性与其他属性相比必须包含唯一值。

另请参阅

BizTalk Server 如何发送 EDI 消息