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 メッセージの送信側の処理