次の方法で共有


フラット ファイル レコードを移行する

概要

Microsoft BizTalk Server では複数文字の区切り記号がサポートされていますが、子区切り記号は 1 種類の区切り記号のみをサポートしています。

BizTalk Serverでは、3 つのスキーマ注釈によって区切り記号の処理が制御されます。2 つは解析用 (skip_CRskip_LF)、1 つはシリアル化 (append_newline) 用です。 BizTalk Serverは、レコードを移行するときに、これらの注釈を次のように解釈します。

  • skip_CR注釈の値が true で、現在の区切り記号が復帰 (0x0D) でない場合、BizTalk Serverは現在の区切り記号に復帰を追加します。 たとえば、現在の区切り記号がパイプ記号 (0x7C) の場合、パイプ記号の後にキャリッジ リターンが追加されます (0x7C 0x0D)。 現在の区切り記号が復帰の場合、 skip_CRの値に関係なく、1 つの復帰として残ります。

  • skip_LF注釈の値が true の場合、BizTalk Serverは現在の区切り記号に改行文字 (0x0A) を追加します。 前の例では、現在の区切り記号がパイプ記号 (0x7C) の場合、skip_CRとskip_LFの両方が true の場合、3 文字の区切り記号 (0x7C 0x0D 0x0A) が発生します。

  • BizTalk Serverは、append_newline注釈の設定を無視します。

    注釈の概要を理解すると、ほとんどの場合、問題なく移行を行えます。ただし、移行が失敗する場合もあります。 たとえば、skip_CRskip_LFの両方が true で、現在の区切り記号がパイプ記号 (0x7C) である場合、BizTalk Serverは、単一のレコード セット内で有効な区切り記号として、0x7C 0x0D 0x0A、0x7C 0x0D、0x7C 0x0A、および0x7Cを受け取ります。 このような区切り記号セットを使用するレコードは移行できず、BizTalk Serverでカスタム パーサー コードを必要とします。

    BizTalk Serverには 1 種類の区切り記号しかありませんが、レコードを簡単に移行できるように、古い注釈を解釈します。 BizTalk Server スキーマにdef_record_delimdef_field_delimdef_subfield_delimの値があり、inherit_recordとしてdelimiter_typeで参照される場合など、BizTalk Serverは対応する値を取得してローカルに格納します。

    さらに、BizTalk Serverは、子のないタグ付けされた位置指定レコードのフィールドを追加します。

参照

スキーマの生成と検証に関する既知の問題