次の方法で共有


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

フラット ファイル アセンブラーを使用するカスタム パイプラインを通るメッセージに、レコードが不足している場合、フラット ファイルの出力にレコードの区切り記号が表示されるかどうかは、入力ファイルのどこでレコードが不足しているかによって決まります。

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

プロパティ 設定
空のデータの区切り記号を保持する はい
末尾の区切り記号の非表示 いいえ
空のノードを生成 (ルート ノードに設定) True

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

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

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

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

  4. 空になる可能性があるフィールドに対しては、ソース フィールドが空であるかどうかを確認して (Nil の代わりに) 空の文字列を返すカスタム スクリプトを使用します。 次のようなスクリプトを使用します。

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

    Note

    空になる可能性があるマップ対象フィールドごとに、一意の関数名を持つスクリプトを作成する必要があります。 たとえば、空のフィールドが 3 つある場合は、、ValOrEmpty2ValOrEmpty3、 という名前ValOrEmpty1の関数を使用できます。

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

参照

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