2016-09-22 114 views
0

我們的合作伙伴發送了一個EDIFACT,其中包含一些自定義細分。我已經更新了現有的edifact模式之一以擁有這些自定義細分。快樂的一天情景正在發揮作用。我們正在嘗試實施負面情景。企業希望BizTalk在交換中處理成功的消息,併爲失敗的消息提出錯誤。我沒有使用合作伙伴協議。在EDIFACT故障預置設置中,我已設置入站批處理選項以將交換拆分爲事務集 - 暫停事務集錯誤。BizTalk EDIFACT子文檔拆分

問題: 我的合作伙伴會在同一個事務集內(即在UNH-UNT內)發送多個數據(在我們的例子中爲多個S01Loop)。如果我運用上面的邏輯,整個交換都失敗了。

要求: 我們希望特定的循環數據失敗,其餘正數應該通過。

我試過的東西: 對於基於HIPAA的edifact文件,有一個叫做subdocument_break的概念。我在XSD中應用了這些註釋。不幸的是它沒有工作。

如果沒有開箱即用的解決方案,我打算編寫一個EDI分離器管道組件,它將是自定義的平面文件反彙編程序組件,它將多個數據拆分爲不同的實例。然後我將使用EDI反彙編器來解析數據。

讓我知道是否有人有BizTalk中可用的開箱即用功能來做到這一點。

回答

0

在這種情況下,子文檔拆分不會有幫助,因爲如果存在語法錯誤,則整個事務集無論如何都會失敗。

這是有原因的。如果段不合格,解析器不能可靠地確定它的位置。

解決此問題的正確方法是將此類驗證移到後面的過程中,以便在解析後檢測無效消息。如果貿易伙伴發送真正無效的EDI,他們確實需要在他們的最後解決這個問題。