2012-10-19 55 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。