修正:當 XML 到 平面檔案的 EDI 訊息處理在 BizTalk Server 子迴圈中包含空節點時會失敗

套用到
BizTalk Server 2016 Branch BizTalk Server 2016 Developer BizTalk Server 2016 Enterprise BizTalk Server 2016 Standard BizTalk Server 2013 R2 Branch BizTalk Server 2013 R2 Developer BizTalk Server 2013 R2 Enterprise BizTalk Server 2013 R2 Standard

症狀

假設你在Microsoft BizTalk Server中使用電子資料交換 (EDI) 。 當你將 EDI 訊息從可擴充標記語言(Extensible Markup Language) (XML) 處理到一個平面檔案時,若訊息包含子迴圈中的空節點,程序會失敗。 例如,節點被記為 <ns0:DTM_SubLoop/> ,而非 <ns0:DTM_SubLoop></ns0:DTM_SubLoop>

此外,您可能會收到類似以下錯誤訊息的訊息:

注意

  • 記錄檔名稱:應用程式
  • 資料來源:BizTalk Server
    日期: 日期/時間
    事件編號:5743
    任務類別:BizTalk Server
    層級:
    警告 關鍵字:
    經典用戶:無資料
    電腦: ComputerName
    說明:該轉接器未能傳送訊息,將傳送埠為「SendPort1」,網址為「FilePath\FileName」。 該訊號會在該 Send Port 指定的重試間隔後重新傳送。 詳情:「無法讀取管線產生的水流。
  • 詳情:錯誤:1 (區段層級錯誤)
    分段編號:AMT
    TS 排名:36 2:
    意想不到的片段。
    Event Xml: <Event xmlns=“FilePath\FileName”>  
    <系統>    
    <提供者名稱=「BizTalk Server」/>    
    <EventID Qualifiers=“32960”>5743</EventID>    
    <第三<級>/等級>    
  • <任務>一</任務>
    <關鍵字>0x80000000000000</關鍵字>
    <TimeCreated SystemTime=「日期/時間」/>    
    <EventRecordID>1159013</EventRecordID>    
    <頻道>應用</頻道>    
    <電腦>名稱</電腦>    
    <安全性 />  
    </系統>  
    <EventData>    
    <Data>SendPort1</Data>    
    <Data>Data</Data>    
    <資料>無法讀取由管線產生的串流。
     詳細資料:錯誤:1 (段級錯誤) 段ID:AMT TS 位置:36 2:意外段< /Data></EventData></Event>

解決方式

此問題已在以下 BizTalk Server 的累積更新中得到修正:

BizTalk Server 2013 r2 的累積更新 7

BizTalk Server 2016 的累積更新 3

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

欲了解 BizTalk Server 的服務包及累積更新清單,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

2555976 服務包及累積更新清單 BizTalk Server

欲了解更多關於 BizTalk Server 熱修補的資訊,請點擊以下文章編號,在 Microsoft 知識庫中查看該文章:

2003907 關於 BizTalk 熱修正與服務包支援的資訊