次の方法で共有


フラット ファイル レコードの移行

概要

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 では、子を含まないタグ付きの位置指定レコードにフィールドを追加します。

こちらもご覧ください

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