发送 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 来源于协议属性,则每个属性与其他属性相比必须包含唯一值。