BizTalk Server 如何发送 EDI 消息(5)
替代 EDI 标头[除非特别注明,本主题中的内容适用于BizTalk Server 2013 和 2013 R2。]
发送 EDI 编码的交换时,应用到消息的 EDI 信封通常基于接收协议的 EDI 属性,或基于后备协议属性。但是,基于运行时所生成的值来设置 EDI 信封属性通常很有用。
在 BizTalk Server 中,你可以使用EdiOverride 上下文属性来指定用于在出站文档上生成 EDI 信封的值。
使用 EdiOverride 上下文属性
EdiOverride 上下文属性提供一种方法来重写全部或部分用于生成 EDI 信封的值。EDI 发送管道将使用包含一个有效值的EdiOverride 上下文属性来构造信封。如果未填充某个属性,则管道将使用协议属性中所指定的值;而如果还未定义协议,则将使用后备协议属性中所指定的值。如果某个属性包含无效值,则管道将挂起消息并报告一个验证错误。
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif便笺
仅在将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 和 UNGEDIFACT 段是可选的,因此,不管“应用 UNA 段”协议设置如何,都可使用GenerateUNA 和 GenerateUNG 属性来确定是否生成这些标头。下表显示了导致生成这些段的值:
GenerateUNA上下文属性
应用UNA段协议设置
引擎行为
TRUE
CHECKED
生成 UNA
TRUE
UNCHECKED
生成 UNA
FALSE
CHECKED
不生成 UNA
FALSE
UNCHECKED
不生成 UNA
不显示(OverrideEDIHeader 为false)
CHECKED
生成 UNA
不显示(OverrideEDIHeader 为false)
UNCHECKED
不生成 UNA
GenerateUNG上下文属性
应用UNG段协议设置
引擎行为
TRUE
CHECKED
生成 UNG
TRUE
UNCHECKED
生成 UNG
FALSE
CHECKED
不生成 UNG
FALSE
UNCHECKED
不生成 UNG
不显示(OverrideEDIHeader 为false)
CHECKED
生成 UNG
不显示(OverrideEDIHeader 为false)
UNCHECKED
不生成 UNG
组信封
由于交换可显示多个组,因此,组信封带来了一个特殊的难题。为了解决这个难题,EDI 发送管道可将信封应用到交换中的所有组,或仅将信封应用到交换中的一个组。
对于单一事务,可重写所有 GS 或 UNG 字段,而对于成批交换,仅可重写以下字段:
[*] GS04
[*] GS05
[*] UNG4_1
[*] UNG4_2
批处理
批处理消息的事务集控制编号的重写将由批处理业务流程来处理。可通过将以下属性写入到将进行批处理的任何消息的上下文来重写事务集控制编号:
[*] ST02(适用于 X12 消息)
[*] UNH1(适用于 EDIFACT 消息)
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif便笺
如果相同组中的多个传入消息包含相同的控制编号,则具有重复编号的消息将被挂起。
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif便笺
对于将进行批处理的消息,不要升级 EdiOverride 上下文属性 ISA、UNA、GS 或 UNG。如果你需要重写这些属性,则应首先在批处理业务流程的输出消息上升级这些属性,然后再将它们发送到 EDI发送管道。
分隔符冲突
对于每个字段,分隔符(例如,UNA 标头)必须包含一个唯一值。重写分隔符(例如,UNA 标头)值时,必须确保每个分隔符的值不仅在你所重写的值中是唯一的,还应在协议或后备协议设置中所使用的任何分隔符中是唯一的。
例如,如果你重写协议属性中的 UNA1、UNA2、UNA4、UNA3、UNA5、UNA6 和UNA6Suffix,则每个属性必须包含与其他值不同的唯一值。
页:
[1]