このチュートリアルでは、HTTP トランスポート経由で EDIINT/AS2 でエンコードされたメッセージを送受信するソリューションを設定します。
チュートリアル ソリューションのしくみ
ソリューションでは、次の処理が実行されます。
パートナーから AS2 メッセージを受信する (Fabrikam)
MDN 応答をパートナーに非同期的に返す
AS2 メッセージの EDI ペイロードを処理する
AS2 経由でパートナー (Fabrikam) に 997 の受信確認を返す
EDI メッセージのペイロードを含む XML ファイルを、ホーム組織 (Contoso) のバックエンド アプリケーションにルーティングします。
注
このソリューションでは、AS2 メッセージのセキュリティを確保するために署名や暗号化は使用されません。
チュートリアル コンポーネント
このソリューションでは、次のものが使用されます。
AS2/EDI メッセージを送信者 (/Contoso/BTSHTTPReceive.dll) から受信するための BTS Http 受信 ISAPI フィルター。
997 受信確認と MDN (http://localhost/Fabrikam/Default.aspx) を返すことによってパートナーをシミュレートする ASPX Web ページ。
864 スキーマとその他のスキーマ (Schemas.btproj) のデプロイに使用するプロジェクト ファイル。
EDI ファイルを受信する一方向の HTTP 受信場所 (Receive_AS2)。 この受信場所では、AS2 デコーダーと EDI 逆アセンブラーを含む既定の AS2EdiReceive パイプラインが使用されます。
非同期 MDN (Send_Async_MDN) を返す動的 HTTP 送信ポート。 この送信ポートでは、AS2 エンコーダーを含む AS2Send パイプラインが使用されます。
XML ファイル内の EDI ペイロードをバックエンド フォルダー (Send_Payload_EdiXml) にルーティングする静的な一方向 FILE 送信ポート。 この送信ポートでは、PassThruTransmit 送信パイプラインが使用されます。
AS2 (Send_Async_997) 経由でパートナーに 997 受信確認を返す静的一方向 HTTP 送信ポート。 この送信ポートでは、AS2 エンコーダーを含む AS2Send パイプラインが使用されますが、EDI アセンブラーは必要ありません。
Fabrikam パートナーから BizTalk (Sender.csproj) に EDI ファイルを送信するアプリケーションのビルドに使用するプロジェクト ファイル。
メッセージ フロー
完成したソリューションのメッセージ フローは、次の図のようになります。
チュートリアル コンポーネントは、次のようにメッセージを処理します。
sender.exe アプリケーションを使用して、パートナー Fabrikam から BizTalk Server コンピューターに元の EDI/AS2 メッセージを送信します。 Sender.exe は、EDI/AS2 メッセージを Contoso 仮想ディレクトリに送信します。
注
この一覧のイベントは、表示された順序で発生しない可能性があります。
テスト メッセージは、\Program Files\Microsoft BizTalk Server 20xx\SDK\AS2 Tutorial の X12_00401_864.edi です。
Receive_AS2一方向の受信場所は、BTSHTTPReceive.dll ISAPI 拡張機能を使用して Contoso 仮想ディレクトリからファイルを選択して、Fabrikam から EDI メッセージを受信します。 受信パイプラインは、AS2 メッセージをデコードし、EDI インターチェンジを逆アセンブルしてから、メッセージ XML を MessageBox にドロップします。
受信パイプラインは AS2 メッセージの MDN を生成し、MDN が非同期に設定されているため、受信パイプラインは MDN を MessageBox にドロップします。
受信パイプラインは、EDI インターチェンジに応答して 997 受信確認を生成し、997 を MessageBox にドロップします。
Send_Payload_EdiXml静的一方向送信ポートは、BTS.MessageType コンテキスト プロパティを基にフィルターを適用して、メッセージ ボックスから EDI ペイロードを取得します。
ペイロード送信ポートは、EDI ペイロードを含む XML ファイルを、\_EDIXMLToContoso フォルダーで表されるバックエンド Contoso アプリケーションに送信します。 この送信ポートでは、PassThruTransmit 送信パイプラインが使用されます。
Send_Async_MDN動的送信ポートは、EdiIntAS.IsAS2AsynchronousMdn コンテキスト プロパティをフィルター処理して、MessageBox から非同期 MDN を取得します。
MDN 送信ポートは、MDN を \_MDNToFabrikam フォルダーに返します。 これは動的送信ポートであるため、メッセージのヘッダー (http://localhost/Fabrikam/Default.aspx?Destination=_MDNToFabrikam) の Receipt-Delivery-Option 行のアドレスを使用して、メッセージを \_MDNToFabrikam フォルダーにルーティングします。
Send_Async_997送信ポートは、BTS.MessageType コンテキスト プロパティを用いてフィルター処理を行い、メッセージボックスから997を取得します。
997 送信ポートは、HTTP トランスポートを使用して、EdiReceive 受信パイプラインによって生成された 997 メッセージを \_997ToFabrikam フォルダーに送信します。 送信ポートは、URI http://localhost/Fabrikam/Default.aspx?Destination=_997ToFabrikamを使用して Fabrikam default.aspx ページにメッセージを送信します。 その後、default.aspx ページから \_997ToFabrikam フォルダーに 997 が送信されます。
このチュートリアルを実行するには、次の知識が必要です。
BizTalk Server パイプラインとパイプライン コンポーネント
HTTP アダプター
受信ポートと場所
送信ポート