2012-10-19 57 views
3

我在biztalk中創建了一個flatfile模式,我的問題是在結果文件的最後一行「缺失新行」,我做了一些研究並發現記錄信息應該顯示像這樣:換行符中缺少換行符

:recordInfo structure="delimited" delimiter_type="hex" delimiter_value="0x0D 0x0A" field_order="postfix" append_newline="yes" skip_CR="no" child_delimiter_type="hex" child_delimiter="0x09" child_order="infix" sequence_number="2" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> 

但它仍然無法正常工作。有什麼建議麼?

+0

請在寫作和格式化問題上付出至少一點努力。 – dngfng

+0

我編輯了您的問題,使其更具可讀性。我不太確定你的代碼是否符合你的要求。你想讓它以':recordInfo'開頭嗎? – 2012-10-19 14:02:07

+0

平面文件架構非常難以正確工作。有幾次,我最終做了一些外部的事情來讓它工作,因爲它比替代方案更容易。對不起,我沒有更好的答案給你。 – Jay

回答

1

不同系統之間的「新線」有所不同。

在Windows系統上,它是char(13)和char(10)在其他系統上它只是char(13)。所以如果你從另一個系統打開一個文件,它可能看起來好像缺少了「新行」。

你定義爲char(13)CHAR(10)

Child Delimiter: 0x0D 0x0A 

這可能不符合你的文件,你可能需要改變這樣的:

Child Delimiter: 0x0A 

詳見:http://en.wikipedia.org/wiki/Newline

0

已經提供了類似問題的答案,請參閱BizTalk Flat File Schema - how to accept a LF or CRLF as the line delimiter

我有和你一樣的問題,這篇文章幫了我很多。我不記得帖子的指導方針是否解決了可選的尾隨CR/LF的具體問題......但他們激勵了我,讓我走上了正軌。如果您找不到解決方案,請給我發一條消息,我將發佈我的解決方案的說明,說明可選的尾隨CR/LF。

0

嘗試將child_order從「infix」更改爲「postfix」。這是告訴所有行以換行符結束(即使它是最後一行)。 如果它的「中綴」,那麼它意味着所有行被它們之間的換行符分隔,即不是最後一行。

您的換行符由[delimiter_value =「0x0D 0x0A」]定義。也可以嘗試根據您的操作系統將其更改爲CR或CRLF或LF。