3

biztalkでフラットファイルスキーマを作成しました。問題は、結果のファイルの最後の行に「改行」がないことです。調査を行ったところ、レコード情報は次のようになります。

: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" />

しかし、それでも機能しません。助言がありますか?

4

2 に答える 2

1

child_orderを「infix」から「postfix」に変更してみてください。これは、すべての行が改行文字で終了することを示しています(最後の行であっても)。その「中置」の場合、すべての行がそれらの間の改行文字で区切られていることを意味します。つまり、最後の行ではありません。

改行文字は[delimiter_value="0x0D0x0A"]で定義されています。また、オペレーティングシステムに基づいて、これをCRまたはCRLFまたはLFのみに変更してみてください。

于 2012-11-16T13:48:32.033 に答える
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を参照してください。

于 2012-10-27T21:06:15.887 に答える