【问题标题】:Biztalk 2009 Cannot parse message if MSH-7 (Date/Time of Message) is specified to milliseconds如果 MSH-7(消息的日期/时间)指定为毫秒,Biztalk 2009 无法解析消息
【发布时间】: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


【解决方案1】:

您可以将代码添加到转换并删除有问题的毫秒,而不是更改架构。在处理时间戳/日期时,这种情况经常发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 2012-05-04
    相关资源
    最近更新 更多