0

我要在BizTalk中選擇一個csv文件,並且在某些過程之後,我想用兩個或多個不同的系統更新它。帶逗號值的csv數據在通過BizTalk平面文件處理文件時拋出錯誤反彙編程序

爲了獲得csv文件,我使用默認的Flatfile Disassembler來打破它,並使用基礎架構將其構建爲XML。如果我使用逗號(分隔符除外),BizTalk失敗,我可以成功完成一些一致的數據。

任何其他不使用自定義管道組件的方法? 期待在flatfile反彙編程序組件中進行簡單的配置!

+0

注意:總是包含錯誤信息和一個如何在問題中重現問題的示例,否則人們不得不猜測問題是什麼。 – Dijkgraaf

回答

5

所以,這是交易。 BizTalk不失敗。嗯,這是,但這是預期的和正確的行爲。

你有什麼無效的CSV文件。 CSV規範禁止使用字段數據中的逗號,除非使用換行字符。無論哪種方式,都是保留字符。

要接受字段數據中的逗號,您必須選擇換行字符並將其設置爲平面文件架構中的換行字符屬性。

這是有效的:

1/1/01, 「史密斯,約翰」,$ 5000個

這不是:

1/1/01·史密斯,John,$ 5000

+0

是的,它被'''包圍着,所以它正在處理文件,但是最後一行應該在文件結尾?錯誤發生在最後一行。 – Balaji

+0

@Balaji這取決於文件格式,這將是一個單獨的問題,請發佈一個示例文件,指出特殊字符,如CR LF。 – Dijkgraaf

+2

這通常通過將行類型更改爲從後綴中綴來解決。 –

1

由於您的模式定義具有','作爲分隔符,因此平面文件反彙編程序會將逗號分爲兩個字段,並且由於列中不匹配而失敗。 有幾種選擇:

  • 如果您知道數據只會出現在特定字段中,請將新字段添加到模式。
  • 或者將平面文件中的分隔符從|更改爲|(管道)或其他字符,以使數據不與分隔符衝突。
  • 或者正如您所提到的那樣,在自定義管道組件中操作平面文件,如果上面兩個不可行,應該是最後的選擇。
相關問題