2012-05-23 24 views
2

我有一個標準的雙向接口,它使用biztalk 2009作爲我們的接口引擎。發生的事情是,我們接收的訂單消息解析得很好,除了它們發送的日期時間爲MSH.7到毫秒。 3個額外的數字導致它失敗並出現數據類型錯誤。如果我刪除MSH.7中的3個額外數字,則消息將處理正常。Biztalk 2009如果將MSH-7(消息的日期/時間)指定爲毫秒,則無法解析消息

要添加一層複雜性,我發現這篇文章:http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/d65bf4de-a3dd-47f3-babe-a82bdc260291/其中描述的問題,並建議我可以更改MSH架構,以解決它。我這樣做了,它確實工作,我可以處理郵件以及我的結果信息返回,並且它似乎一切正常。但是,當試圖產生ACK時,它完全失敗。我認爲可能有類似的批次問題,但我沒有那麼深入。通過改變MSH模式,內置的ACK功能不再起作用,因爲MSH頭部具有意想不到的形式(我認爲)。

我開始用盡想法,並認爲我會嘗試在這裏發帖,因爲我在旅途中發現了很多答案。最奇怪的部分是MSH.7被定義爲MSH模式中的一個字符串,所以它看起來不應該在這個字段中傳遞什麼。

+0

在HL7 v2.4中,MSH7實際上定義爲類型** TS **,而不是像您說的那樣是一個字符串。 TS是時間戳,具有特定的格式:* YYYY [MM [DD [HHMM [SS [.S [S [S]]]]]]] [+/- ZZZZ]^<精度> * –

+0

對不起,我們正在使用HL7 v2.5 MSH頭,因爲它向後兼容所有以前的2.x版本。 – PlexDM

回答

0

您可以將代碼添加到轉換並刪除有問題的毫秒,而不是更改模式。處理時間戳/日期時會發生很多事情。