我在biztalk中创建了一个flatfile模式我的问题是在结果文件的最后一行中缺少“换行符”,我做了一些研究,发现记录信息看起来像这样:< / p>
: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 :(得分: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
答案 1 :(得分:0)
已经为类似问题提供了答案,请参阅BizTalk Flat File Schema - how to accept a LF or CRLF as the line delimiter。
我和你有完全相同的问题,这篇文章给了我很多帮助。我不记得该帖子的指南是否解决了可选尾随CR / LF的具体问题......但是他们激励我并让我走上正轨。如果您没有找到解决方案,请给我发消息,我会发布关于尾随CR / LF可选的解决方案的说明。
答案 2 :(得分:0)
尝试将child_order从“infix”更改为“postfix”。这告诉所有行以换行符结尾(即使它是最后一行)。 如果它的“中缀”则表示所有行都被它们之间的换行符分隔,即不是最后一行。
您的换行符由[delimiter_value =“0x0D 0x0A”]定义。也可以尝试根据您的操作系统将其更改为CR或CRLF或LF。