次の方法で共有


AS2 経由で受信した非 EDI メッセージの受信側の処理

BizTalk Server付属の AS2 パイプラインを使用して、AS2 トランスポート経由で EDI メッセージまたは非 EDI メッセージを処理できます。 この 2 つの種類のペイロードで使用されるパイプラインは異なります。 AS2 経由の受信 EDI メッセージの処理には、AS2EdiReceive パイプラインを使用し、関連する MDN (有効になっている場合) を返すときには AS2Send パイプラインを使用します。 AS2 経由で受信した非 EDI メッセージの処理には、AS2Receive パイプラインを使用し、関連する MDN (有効になっている場合) を返すときには AS2Send パイプラインを使用します。 非 EDI メッセージは、任意のバイナリ ペイロードです。

AS2Receive 受信パイプラインは、AS2 メッセージをデコードした後、AS2 メッセージの逆アセンブルを実行します。 AS2Send 送信パイプラインは、MDN をエンコードします。 AS2Receive パイプラインと AS2Send パイプラインは、双方向の送信請求 - 応答の HTTP 送信ポート (MDN が同期の場合) か、一方向の HTTP 送信ポートと一方向の HTTP 受信ポート (MDN が非同期の場合) に含めることができます。 BizTalk Server では 1 つの受信パイプラインで実行できる逆アセンブルは 1 つだけであるため、非 EDI ペイロードの逆アセンブルを実行する必要がある場合、この処理は別のパイプラインで行うことが必要になります。 これにはループバック送信ポートと受信場所が必要です (後述の「 受信した非 EDI ペイロードの処理 」セクションを参照してください)。

AS2 経由で非 EDI インターチェンジを受信するために、BizTalk Server は次の手順を実行します。

  • 受信した AS2 メッセージの処理

  • MDN の送信

  • 受信した非 EDI ペイロードの処理

受信した AS2 メッセージの処理

AS2Receive 受信パイプラインの AS2 デコーダーは、受信 AS2 メッセージを処理します。 これは、AS2 メッセージの InboundHTTPHeaders HTTP ヘッダーから HTTP アダプターによって作成されるコンテキスト プロパティを使用して行われます。 これらのヘッダーには、次の AS2 ヘッダーが含まれます。

  • AS2-To

  • AS2-From

  • AS2-Version

  • MessageID

  • OriginalMessageID (MDN のみ)

  • Disposition-Notification-To (MDN が要求されている場合)

  • Receipt-Delivery-Option (MDN が要求されている場合)

  • Signed-Receipt-MICalg (MDN が要求されている場合)

    AS2 デコーダーは、これらのヘッダーをメッセージのコンテキストに昇格させます。 その後、次の処理が行われます。

  • アグリーメントの解決を実行して、受信メッセージの処理に使用するパーティのプロパティを特定します。 詳細については、「 受信 AS2 メッセージの契約解決」を参照してください。

  • AS2-From プロパティと AS2-To プロパティを使用して送信者を認証します。

    Note

    AS2 が受信 AS2 メッセージに対して実行する処理の詳細については、「 受信 AS2 メッセージの処理」を参照してください。

MDN の送信

MDN が有効にされている場合、AS2Receive パイプラインは MDN を生成し、メッセージボックスにドロップします。 最初のメッセージの送信者に MDN が返される方法は、AS2 トランスポートが同期であるか非同期であるかによって異なります。

Note

AS2 が送信 MDN に対して実行する処理の詳細については、「 発信 MDN の生成」を参照してください。

同期モード

非 EDI メッセージが AS2 経由で同期モードで送信される場合、BizTalk Server はその同期接続を経由して MDN を返し、接続を閉じます。 MDN は AS2Receive パイプラインによって生成され、メッセージ ボックスにルーティングされた後、要求 - 応答の受信ポートの一部である AS2Send パイプラインによって自動的に取得されます。

非同期モード

非 EDI メッセージが HTTP/HTTPS トランスポート経由で非同期モードで送信される場合は、MDN を個別に返すための送信ポートを作成する必要があります。 これが動的送信ポートである場合は、メッセージのヘッダーの Receipt-Delivery-Notification 行にあるアドレスを使用してメッセージを取引先にルーティングします。 静的送信ポートである場合は、ポート プロパティで定義されたアドレスを使用します。 この送信ポートは、フィルター式を使用して非同期 MDN を EdiIntAS.IsAS2AsynchronousMDN==True サブスクライブします。 非同期処理では、AS2Receive パイプラインが MDN だけでなく HTTP 応答も生成します。 受信ポートは、受信ポートと送信パーティ間の HTTP 接続を経由して元の送信者に HTTP 応答を返し、元の送信者がその接続を閉じます。 これが必要なのは、同期接続が MDN によって閉じられないためです。

受信した非 EDI ペイロードの処理

EDI エンコードでないメッセージを AS2 経由で受信し、ペイロードの逆アセンブルを実行する必要がある場合、その処理は AS2Receive パイプライン以外の受信パイプラインで行う必要があります。 これは、BizTalk Server では 1 つの受信パイプラインで実行できる逆アセンブルは 1 つだけであるためです。 このシナリオでは、送信ポートと受信場所を使用するループバック メカニズムが必要になります。 最初の受け渡しでは、EDIReceive パイプラインは AS2 メッセージを処理し、メッセージをネイティブ形式でメッセージ ボックスに送信します。 2 番目の受け渡しでは、受信パイプラインはメッセージのネイティブ形式から XML を生成します。

BizTalk Server は、AS2 BizTalk Server 経由で受け取った非 EDI メッセージに対して、次のような受信側の処理を実行します。

  • 要求 - 応答の双方向の受信場所に関連付けられている AS2Receive 受信パイプラインは、非 EDI メッセージの AS2 ヘッダーを解析し、このメッセージを BizTalk メッセージ ボックスにルーティングします。

  • ループバック送信ポート (FILE または MSMQ) は、BizTalk プロパティ IsAS2PayloadMessage == Trueでフィルター処理されるため、非 EDI メッセージを MessageBox から選択します。 この送信ポートに関連付けられている PassThruTransmit 送信パイプラインは、フォルダーまたは MSMQ キューにメッセージをルーティングするときに、メッセージを非 EDI 形式で渡します。

  • ループバック受信場所がメッセージを取得します。 ループバック受信場所に関連付けられている受信パイプラインは、非 EDI メッセージから XML メッセージを生成し、それをメッセージ ボックスにルーティングします。

  • メッセージをバックエンド アプリケーションにルーティングする必要がある場合は、送信ポートが XML メッセージを取得してアプリケーションにルーティングします。

参照

BizTalk Server が AS2 メッセージを受信する方法
AS2 経由での送信 EDI メッセージの送信側の処理