我尝试向BizTalk发送HL7消息并收到错误代码0xC0C01B4e(路由失败报告),并显示以下消息:
路由失败报告<名称不可用>
我在最后一天工作了,我现在收到这条消息,完全令人难以置信。
我的情景:
1 Request/Response Recieve Port named HL7Test.In
1 Receive Location for the Receive Port called HL7Test.In.MLLP
Type is MLLP
Receive pipeline is BTAHL72XRecievePipeline
Send pipeline is BTAHL72XSendPipeline
1 Send Port
Type is file
Send pipeline is Passthrough
Filter is BTS.ReceivePortName == HL7Test.In
1 Party configuration called "REG", with the following BTAHL7 configuration:
Acknowledgemnt type: OriginalMode
Validate body segments: Enabled
Validate custom datat types: Enabled
Alow trailing delimiters: Enabled
Schema namespace: http://microsoft.com/HealthCare/HL7/2X
I've deployed the BTAHL7V2XCommon, BTAHL7V21Common and ADT message schemas
我使用MLLP从第三方应用程序发送HL7消息 没有回复 文件未写入 如上所述,生成1个不可恢复的错误。
我发送的信息是:
MSH | ^〜\&安培; | REG | ||| FAC || 201207271419 ADT ^ A04 | 504111 | d | ||| 2.1 AL | AL |
EVN | A04 | 201207271419 || 02 PID | 1 || M11 || REGRIHSOT ^ xyz ^ 2 ^ 3 ^ 5 ^ 6
NK1 | 1 | Regrihsot ^妻子^ 3 ^ 4 ^ 5 ^ 6 | W | 1 ^ 2 ^城市^ BC ^ V1S 0A7 ^ 6 ^ 7 ^ 8 |
PV1 | 1 | E | KAMRIHED ||||| MITD4 |||||| HO |||| ED || BC ||||||||||||||||||| FAC || REG ||| 201207271417 |
ZAD | MAIL ^ 1 ^^ city ^ BC ^ V1S 0A7 | PHYS ^ 1 ^^ Kamloops ^ BC ^ V1S 0A7 | ZTZ | PT |
ZGC | ^^ |
这一切都在一小时前工作正常。
答案 0 :(得分:2)
看来我还需要一个消耗ACK的发送端口。 之前我确实有这个,所以我使用过滤器添加了它:
BTS.MessageType == http://microsoft.com/HealthCare/HL7/2X#ACK_24_GLO_DEF
我不明白为什么我需要消费这条消息。
答案 1 :(得分:1)
我对MLLP适配器没有太多经验,但通常任何发布到您的BizTalk环境的消息都必须有订阅者。如果没有人在等待消息,则BizTalk将其视为错误并引发异常路由失败。这是有道理的,因为如果BizTalk不将未经请求的消息视为异常,那么随着时间的推移,您的环境会因所有这些未经请求的消息而变得臃肿。
我原本预计你的MLLP请求/响应适配器应该已经接收到ACK并关闭了循环。不确定为什么需要创建一个单独的发送端口来获取ACK。值得在这方面进行调查。