【发布时间】:2012-05-23 21:16:28
【问题描述】:
我有一个标准的双向接口,使用 biztalk 2009 作为我们的接口引擎。正在发生的事情是,我们收到的订单消息解析得很好,除了它们以 MSH.7 发送日期时间到毫秒的事实。 3 个额外的数字会导致它因数据类型错误而失败。如果我删除 MSH.7 中的 3 个额外数字,消息将正常处理。
为了增加一层复杂性,我找到了这篇文章:http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/d65bf4de-a3dd-47f3-babe-a82bdc260291/,它描述了这个问题并建议我可以更改 MSH 架构以修复它。我这样做了,它确实可以在我可以处理消息以及返回结果消息的地方工作,而且看起来一切正常。但是,当尝试生成 ACK 时,它会完全失败。我认为批处理可能存在类似的问题,但我没有做到这一点。通过更改 MSH 架构,内置 ACK 功能不再起作用,因为 MSH 标头具有意外的形式(我认为)。
我的想法开始用完了,我想尝试在这里发帖,因为我在旅行中在这里找到了很多答案。最奇怪的部分是 MSH.7 被定义为 MSH 模式中的字符串,因此它们在该字段中传递的内容似乎无关紧要。
【问题讨论】:
-
在 HL7 v2.4 中,MSH7 实际上被定义为类型 TS 而不是你说的字符串。 TS 是一个时间戳,具有特定的格式:YYYY[MM[DD[HHMM[SS[.S[S[S[S]]]]]]][+/-ZZZZ] ^
-
很抱歉没有提到我们正在使用 HL7 v2.5 MSH 标头,因为它向后兼容所有之前的 2.x 版本。
标签: biztalk hl7 biztalk-2009