次の方法で共有


フラット ファイル アセンブラー パイプライン コンポーネントでの区切り記号の保持

フラット ファイル アセンブラーを使用するカスタム パイプラインを通過するメッセージにレコードが見つからない場合、入力ファイル内のレコードが不足している場所によっては、それらのレコードの区切り記号がフラット ファイル出力に表示される場合と表示されない場合があります。

フラット ファイルで特定の区切り記号が保持されるようにするには、マップとカスタム スクリプトを使用して、メッセージに特定の入力レコードが存在しない場合に "空" レコードが作成されるようにします。 これを機能させるには、フラット ファイル アセンブラーのドキュメント スキーマで空になる可能性があるノードに、次のプロパティが設定されていることを確認する必要があります。

プロパティ 設定
空のデータの区切り記号を保持する イエス
末尾の区切り記号を抑制する いいえ
空のノードを生成する (ルート ノードでこれを設定する) 正しい

"空" レコードを作成するマップを作成するには

  1. BizTalk プロジェクトに新しいマップを追加します。

  2. フラット ファイル アセンブラーで使用されるドキュメント スキーマを、マップのソース スキーマとマップ変換先スキーマの両方として指定します。

  3. 空にならないソース フィールドを対応する宛先フィールドにマップします。

  4. 空のフィールドの場合は、カスタム スクリプトを使用してソース フィールドが空かどうかを確認し、(Nil ではなく) 空の文字列を返します。 次のようなスクリプトを使用します。

    public string ValOrEmpty(string val)  
    {  
         return (val.Length > 0) ? val : "";  
    }  
    

    マップする可能性のある空のフィールドごとに、一意の関数名を持つスクリプトを作成する必要があります。 たとえば、3 つのフィールドが空の場合、 ValOrEmpty1ValOrEmpty2ValOrEmpty3という名前の関数が存在する可能性があります。

  5. BizTalk Server 管理コンソールを使用して、カスタム パイプラインとフラット ファイル アセンブラー コンポーネントを使用して送信ポートを構成し、マップを送信マップとして使用します。

こちらもご覧ください

送信ポートの送信マップを構成する方法
フラット ファイル アセンブラー パイプライン コンポーネント