チュートリアル (AS2): 同期 MDN による AS2 経由での EDI の受信
このチュートリアルでは、AS2 トランスポート経由で EDI メッセージを受信して同期 MDN を返すソリューションを作成する、一連の手順について説明します。
前提条件
このトピックの手順を実行するための前提条件は、次のとおりです。
BizTalk Server Administrators または BizTalk Server B2B Operators グループのメンバーとしてログオンする必要があります。
チュートリアルを実行するコンピューターには、インターネット インフォメーション サービス (IIS) 7 がインストールされている必要があります。
チュートリアルを実行するコンピューターに 64 ビット版の Windows がインストールされている場合は、BizTalk ホストが 32 ビットのみとマークされていることを確認する必要があります。 また、IIS でアプリケーション プールの [32 ビット アプリケーション設定を有効にする] が True に設定されていることを確認する必要があります。 詳細については、「 チュートリアル 3: AS2 チュートリアル」を参照してください。
ソリューションで EDI/AS2 メッセージを受信して同期 MDN を返す方法
このソリューションが実行する内容は、次のとおりです。
取引先 Fabrikam から HTTP 経由の EDI インターチェンジを含む AS2 メッセージを受信し、EDIINT/AS2 からインターチェンジをデコードします。
Note
この一覧のイベントは、示されている順序で発生するとは限りません。
要求 - 応答の受信ポートを使用して取引先に同期 MDN を返します。
インターチェンジの EDI 形式を内部 XML 形式に変換し、MessageBox にドロップします。
PassThruTransmit パイプラインを持つ FILE 送信ポートが、メッセージ XML ファイルを取得します。
送信ポートは、CONTOSO パーティのフォルダーに EDI インターチェンジ XML ファイルを送信します。
次の図は、このソリューションのアーキテクチャを示しています。
同期 MDN で
このソリューションの機能
このチュートリアルの機能には、以下の条件が適用されます。
EDI 受信確認は生成されません。 EDI 受信確認の生成については、「 チュートリアル (X12): EDI インターチェンジの受信と受信確認の返送」を参照してください。 AS2 トランスポート経由での EDI 受信確認の送信については、「 チュートリアル (AS2): 同期 MDN を使用して AS2 経由で EDI を送信する」を参照してください。
このソリューションは、EDIFACT エンコードではなく X12 エンコードを使用するインターチェンジを対象に設計されています。
Note
EDIFACT エンコードに使用される構成は、X12 エンコードに使用される構成とよく似ています。
EDI の種類の検証および拡張された検証は、受信インターチェンジに対して実行されます。
AS2 レポートおよび EDI レポートが有効になり、インターチェンジの状態レポートに表示するトランザクション セットが保存されます。
このソリューションは、否認不可データベースに署名、圧縮、暗号化、およびメッセージ ストレージを構成しません。 これらのプロパティを構成する手順については、「 AS2 プロパティの構成」を参照してください。
チュートリアルの構成とテスト
このソリューションに必要な手順は以下のとおりです。
必要なメッセージ スキーマを使用して BizTalk プロジェクトをビルドおよび展開し、受信したインターチェンジを BizTalk サーバーで処理するときにそのスキーマを利用できるようにします。
AS2 メッセージの受信に使用する BTS ISAPI フィルターを有効にします。
Fabrikam からの AS2 メッセージを受信する Contoso 仮想ディレクトリを、受信場所で構成したとおりに作成します。
Contoso 仮想ディレクトリが Windows SharePoint Services の管理対象から除外されるように指定します。
BizTalk Server 用の静的な双方向 HTTP 受信ポートを作成して、取引先から EDI インターチェンジが含まれた AS2 メッセージを受信し、MDN 応答を送信します。 受信パイプラインとして AS2EDIReceive パイプラインを構成し、送信パイプラインとして AS2Send パイプラインを構成します。
静的な一方向 FILE 送信ポートを作成し、EDI ペイロード (XML 形式) をローカル フォルダーにルーティングします。 ローカル フォルダーを作成します。
Fabrikam および Contoso の両方にパーティ (取引先) を作成します。
両方の取引先に対して、それぞれビジネス プロファイルを作成します。
Fabrikam および Contoso のビジネス プロファイル間に AS2 アグリーメントを作成します。 AS2 アグリーメントには AS2 メッセージを送信するためのプロパティが設定されており、AS2 アグリーメントは応答として同期 MDN を受信します。
Fabrikam および Contoso のビジネス プロファイル間に、X12 メッセージを受信する X12 アグリーメントを作成します。
AS2 チュートリアル ファイルの一部として同梱されている HTTP 送信者ユーティリティを使用して、このソリューションをテストします。 このユーティリティは、AS2 トランスポートを経由して、EDI インターチェンジが含まれた AS2 テスト メッセージを送信します (この X12_00401_864-Sync.edi は AS2 チュートリアルにも同梱されています)。 HTTP 送信者とテスト メッセージは、チュートリアル内のバージョンから新しいバージョンに変更する必要があります。 これらの変更については、関連する以下のセクションで説明しています。
チュートリアルの構成
ここでは、チュートリアルを構成する手順について説明します。
メッセージ スキーマをデプロイする
Visual Studio で、プロジェクト \Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\AS2 Tutorial\Schemas\Schemas.btproj を開きます。
Note
このプロジェクトは AS2 チュートリアルに付属し、テスト メッセージと共に使用する 864 スキーマが含まれています。
Note
このトピックは、EDI スキーマ、パイプライン、およびオーケストレーションを含む BizTalk EDI アプリケーションに別のアプリケーションから参照を既に追加していることを前提としています。 そうでない場合は、「BizTalk Server EDI アプリケーションへの参照の追加」を参照してください。
ソリューション エクスプローラーで [スキーマ] プロジェクトを右クリックし、[プロパティ] をクリックします。 プロジェクト デザイナーで [署名] タブをクリックし、[アセンブリに署名] チェック ボックスをチェックし、ドロップダウンから [新規] を選択し、厳密な名前キー ファイルを作成するために必要な値を指定します。 変更を保存し、プロジェクトのプロパティ ウィンドウを閉じます。
Schemas.btproj をビルドおよび展開します。
BTS ISAPI フィルターを有効にする
[スタート] をクリックし、[すべてのプログラム] を指し、[管理ツール] を指し、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
ヒント
オペレーティング システムによっては、管理ツールの [スタート] メニュー オプションを利用できない場合があります。 このような場合は、[ スタート] をクリックし、[ 実行] をクリックし、「」と入力
inetmgr
してインターネット インフォメーション サービス (IIS) マネージャーを開きます。ルート Web サーバー エントリを選択し、[ 機能] ビューで [ ハンドラー マッピング ] をダブルクリックし、[ 操作 ] ウィンドウで [ スクリプト マップの追加] をクリックします。
Note
Web サーバー レベルでスクリプト マッピングを構成すると、このマッピングがすべての子 Web サイトに適用されます。 特定の Web サイトまたは仮想フォルダーへのマッピングを制限する場合は、Web サーバーではなくターゲット サイトまたはフォルダーを選択します。
[スクリプト マップの追加] ダイアログ ボックスで、[要求パス] フィールドに「」と入力
BtsHttpReceive.dll
します。[実行可能ファイル] フィールドで、省略記号 (...) ボタンをクリックし、\Program Files (x86)\Microsoft BizTalk Server <VERSION>HttpReceive を参照します。 [BtsHttpReceive.dll] を選択し、[OK] をクリック します。
[名前] フィールドに「」と入力
BizTalk HTTP Receive
し、[要求の制限] をクリックします。[ 要求の制限 ] ダイアログ ボックスで、[ 動詞 ] タブを選択し、 次のいずれかの動詞を選択します。 動詞 として「」と入力
POST
します。[ アクセス ] タブで、[ スクリプト ] を選択し、[OK] をクリック します。
[ OK] を クリックし、ISAPI 拡張機能を許可するように求められたら、[ はい] をクリックします。
Contoso Web ページを構成する
IIS マネージャーで、[ アプリケーション プール ] を右クリックし、[ アプリケーション プールの追加] を選択します。
[アプリケーション プールの追加] ダイアログ ボックスで、[名前] に「BizTalkAppPool」と入力し、[.NET Framework バージョン] ドロップダウン リストで [.NET Framework V4.0.30210] を選択します。 [OK] をクリックします。
注意
バージョン番号は、マシンにインストールされている.NET Framework 4.5 のバージョンによって異なる場合があります。
[アプリケーション プール] を選択し、[機能] ビューで [BizTalkAppPool] を選択し、[操作] ウィンドウの [詳細設定] をクリックします。
[ 詳細設定] ダイアログ ボックスで[ ID] を 選択し、 省略記号 (...) ボタンをクリックします。
[ アプリケーション プール ID ] ダイアログ ボックスで、[ カスタム アカウント ] を選択し、[ 設定] をクリックします。
管理者グループのメンバーであるユーザー アカウントの [ユーザー名 ] と [ パスワード ] を入力し、[ パスワードの確認 ] にパスワードを入力し、[ OK] を 3 回クリックして IIS マネージャーに戻ります。
IIS マネージャーで、[ サイト ] フォルダーを開きます。 [既定の Web サイト] ノードを右クリックし、[アプリケーションの追加] を選択します。
[アプリケーションの追加] ダイアログ ボックスで、[エイリアス] テキスト ボックスに「Contoso」と入力し、[選択] をクリックします。
[ アプリケーション プールの選択 ] ダイアログ ボックスで、[ BizTalkAppPool ] を選択し、[OK] をクリック します。
[物理パス] で省略記号 (...) ボタンをクリックし、\Program Files (x86)\Microsoft BizTalk Server <VERSION>HttpReceive を参照します。
[ テスト設定] を クリックし、[ テスト接続 ] ダイアログ ボックスにエラーが表示されていないことを確認します。 [閉じる] をクリックしてから [OK] をクリックします。
IIS マネージャーで Contoso 仮想ディレクトリを選択し、[ 機能] ビューで [ 認証] をダブルクリックします。
[ 認証 ] ページで、[ 匿名認証 ] を選択し、[ 状態] が [有効] になっていることを確認します。 [状態] が [無効] の場合は、[操作] ウィンドウで [有効] をクリックします。
仮想ディレクトリが Windows SharePoint Services によって管理されていないことを指定する
Windows SharePoint Servicesがコンピューターにインストールされている場合は、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[管理ツール] をポイントして、[SharePoint 3.0 サーバーの全体管理] をクリックします。
Note
この手順は、チュートリアルを設定するコンピューター上に Windows SharePoint Server がインストールされている場合に実行する必要があります。 実行する場合は、IIS 仮想ディレクトリが Windows SharePoint Server の管理対象から除外されるように指定する必要があります。
[ サーバーの全体管理 ] ページの [ サーバーの全体管理] で、[ アプリケーション管理] をクリックします。
[ アプリケーションの管理 ] ページで、[ マネージド パスの定義] をクリックします。
[ 管理パスの定義 ] ページの [ 新しいパスの追加] で、[ パス ] テキスト ボックスに 「Contoso」と入力します。 [ 種類] の [ 除外されたパス] をクリックし、[OK] をクリック します。
AS2 経由の EDI メッセージを受信し、MDN を返す受信ポートを作成する
BizTalk Server管理コンソールで、BizTalk アプリケーション 1 ノードの下にある [受信ポート] ノードを右クリックし、[新規] をポイントして、[要求-応答受信ポート] をクリックします。
受信ポートに名前を付け、コンソール ツリーの [ 受信場所 ] をクリックします。
[新規作成] をクリックします。
受信場所に名前を付け、[種類] に [HTTP] を選択し、[構成] をクリックします。
[ 仮想ディレクトリと ISAPI 拡張機能] に「」と入力します
/Contoso/BTSHTTPReceive.dll
。[失敗した要求チェック中断する] ボックスを選択し、[OK] をクリックします。
[ 受信パイプライン] で、[ AS2EDIReceive] を選択します。
[ パイプラインの送信] で、[ AS2Send] を選択します。
[OK] をクリックしてから、もう一度 [OK] をクリックします。
BizTalk Server管理コンソールの [受信場所] ウィンドウで、受信場所を右クリックし、[有効にする] をクリックします。
EDI ペイロードをローカル フォルダーに送信する送信ポートを作成する
Windows エクスプローラーで、EDI ペイロードを送信する EDI_to_Contoso という名前のローカル フォルダーを作成します。
BizTalk Server管理コンソールで、[送信ポート] を右クリックし、[新規] をポイントして、[静的 One-Way 送信ポート] をクリックします。
[ 送信ポートのプロパティ ] ダイアログ ボックスで、送信ポートに名前を付けます ( 例: Send_Payload)。 [種類] で [ファイル] を選択し、[構成] をクリックします。
[ ファイル トランスポートのプロパティ ] ダイアログ ボックスの [ 宛先フォルダー] で、手順 1 で作成した EDI_to_Contoso フォルダーを参照して選択します。 [ファイル名] は %MessageID%.xmlのままにします。 [OK] をクリックします。
[ 送信パイプライン ] ドロップダウンでは、既定の PassThruTransmit をそのまま使用します。
コンソール ツリーで [ フィルター] をクリックします。 [ プロパティ] に「BTS」と入力 します。MessageType。 [ 演算子] に「」と入力します ==。 [ 値] に、メッセージのメッセージの種類 を
http://schemas.microsoft.com/BizTalk/Edi/X12/2006#X12_00401_864
入力します。[OK] をクリックします。
BizTalk Server管理コンソールの [送信ポート] ウィンドウで、送信ポートを右クリックし、[開始] をクリックします。
Fabrikam のパーティーとビジネス プロファイルを作成する
BizTalk Server管理コンソールで [パーティ] ノードを右クリックし、[新規] をポイントして、[パーティ] をクリックします。
[名前] テキスト ボックスにパーティの 名前 を入力し、[OK] をクリック します。
Note
[Local BizTalk processes messages received by the Party OR supports messages from this party チェック] ボックスを選択すると、作成するパーティが、BizTalk Serverをホストしているのと同じorganization用であることを指定できます。 その指定に基づいて、アグリーメントを作成するときに一部のプロパティが有効または無効になります。 ただし、このチュートリアルでは、このチェック ボックスはオンのままでかまいません。
パーティ名を右クリックし、[ 新規] をポイントして、[ ビジネス プロファイル] をクリックします。
[プロファイルのプロパティ] ダイアログ ボックスの [全般] ページで、[名前] テキスト ボックスに「Fabrikam_Profile」と入力します。
Note
パーティを作成すると、プロファイルも作成されます。 新しいプロファイルを作成する代わりに、そのプロファイルの名前を変更して使用できます。 プロファイルの名前を変更するには、プロファイルを右クリックし、[プロパティ] を選択 します。 [ 全般 ] ページで、プロファイルの名前を指定します。
Contoso のパーティーとビジネス プロファイルを作成する
BizTalk Server管理コンソールで [パーティ] ノードを右クリックし、[新規] をポイントして、[パーティ] をクリックします。
[名前] テキスト ボックスにパーティの 名前 を入力し、[OK] をクリック します。
Note
[Local BizTalk processes messages received by the Party OR supports messages from this party チェック] ボックスを選択すると、作成するパーティが、BizTalk Serverをホストしているのと同じorganization用であることを指定できます。 その指定に基づいて、アグリーメントを作成するときに一部のプロパティが有効または無効になります。 ただし、このチュートリアルでは、このチェック ボックスはオンのままでかまいません。
パーティ名を右クリックし、[ 新規] をポイントして、[ ビジネス プロファイル] をクリックします。
[プロファイルのプロパティ] ダイアログ ボックスの [全般] ページで、[名前] テキスト ボックスに「Contoso_Profile」と入力します。
Note
パーティを作成すると、プロファイルも作成されます。 新しいプロファイルを作成する代わりに、そのプロファイルの名前を変更して使用できます。 プロファイルの名前を変更するには、プロファイルを右クリックし、[プロパティ] を選択 します。 [ 全般 ] ページで、プロファイルの名前を指定します。
2 つのビジネス プロファイル間に AS2 契約を作成する
[Fabrikam_Profile] を右クリックし、[新規] をポイントして、[契約] をクリックします。
[ 全般プロパティ ] ページの [ 名前 ] テキスト ボックスに、契約の名前を入力します。
[ プロトコル ] ドロップダウン リストから [ AS2] を選択します。
[ Second Partner]\(2 番目のパートナー \) セクションで、[Name]\( 名前 \) ドロップダウン リストから [Contoso] を選択 します。
[ 2 番目のパートナー ] セクションの [ プロファイル ] ドロップダウン リストから、[ Contoso_Profile] を選択します。
[ 全般 ] タブの横に 2 つの新しいタブが追加されていることがわかります。各タブは、一方向 AS2 アグリーメントを構成するためのタブです。
[ 全般 ] タブの [ 全般プロパティ ] ページの [ 共通ホスト設定] セクションで、[ レポートを有効にする] を選択します。
[Fabrikam-Contoso] タブで次のタスクを>実行します。
- [ 識別子 ] ページで、 AS2-From と AS2-To の値 を入力します。 [ AS2-From] に「」と入力します
Fabrikam
。 [ AS2- To] に「」と入力しますContoso
。
- [ 識別子 ] ページで、 AS2-From と AS2-To の値 を入力します。 [ AS2-From] に「」と入力します
[Contoso-Fabrikam] タブで次の>タスクを実行します。
Note
このチュートリアルでは、必要な値をタブに指定し、アグリーメントを正常に作成できるようにします。 契約を正常に作成するには、一方向アグリーメント タブの両方に 、AS2_From と AS2-To の値が定義されている必要があります。
- [ 識別子 ] ページで、 AS2-From と AS2-To の値 を入力します。 [ AS2-From] に「」と入力します
Contoso
。 [ AS2- To] に「」と入力しますFabrikam
。
- [ 識別子 ] ページで、 AS2-From と AS2-To の値 を入力します。 [ AS2-From] に「」と入力します
[適用] をクリックします。
[OK] をクリックします。 新しく追加された契約は、[パーティとビジネス プロファイル] ウィンドウの [契約] セクションに一覧表示されます。 新しく追加したアグリーメントは既定で有効になります。
2 つのビジネス プロファイル間に X12 契約を作成する
[Fabrikam_Profile] を右クリックし、[新規] をポイントして、[契約] をクリックします。
[ 全般プロパティ ] ページの [ 名前 ] テキスト ボックスに、契約の名前を入力します。
[ プロトコル ] ドロップダウン リストから [ X12] を選択します。
[ Second Partner]\(2 番目のパートナー \) セクションで、[Name]\( 名前 \) ドロップダウン リストから [Contoso] を選択 します。
[ 2 番目のパートナー ] セクションの [ プロファイル ] ドロップダウン リストから、[ Contoso_Profile] を選択します。
[ 全般 ] タブの横に 2 つの新しいタブが追加されていることがわかります。各タブは、一方向 X12 契約を構成するためのタブです。
[ 全般 ] タブの [ 全般プロパティ ] ページの [ 共通ホスト設定] セクションで、[ レポートを有効にする] を選択し、[ レポート用にメッセージ ペイロードを格納する] を選択します。
[Fabrikam-Contoso] タブで次のタスクを>実行します。
[インターチェンジの設定] セクションの [識別子] ページで、テスト メッセージのヘッダー フィールドの値に対応する修飾子フィールドと識別子フィールド (ISA5、ISA6、ISA7、ISA8) の値を入力します。
Note
BizTalk Server契約解決を実行するには、送信者と受信者の修飾子フィールドと識別子フィールドが必要です。 インターチェンジ ヘッダーの ISA5、ISA6、ISA7、ISA8 の値と、契約のプロパティの値が一致します。 BizTalk Serverでは、送信者の修飾子と識別子 (受信者修飾子と識別子なし) を照合することで、契約も解決されます。 BizTalk Server契約を解決できない場合は、フォールバック 契約のプロパティが使用されます。
Note
このチュートリアルでは、 ISA5 を ZZ、 ISA6 を 7654321、 ISA7 を ZZ、 ISA8 を 1234567に設定します。
[インターチェンジの設定] セクションの [検証] ページで、[ISA13 の重複を確認する] オプションがオフになっていることを確認します。
Note
[ 重複する ISA13 のチェック ] プロパティをオフにすると、同じメッセージの複数のインスタンスを受信できます。
BizTalk Serverに付属する標準スキーマのいずれかを使用している場合は、[ローカル ホストの設定] ページの [トランザクション セットの設定] セクションで、受信インターチェンジの処理に使用するスキーマの名前空間を選択します。
プロパティ 目的 [Default] 列のチェック ボックスをオンにします [ターゲット名前空間] [ http://schemas.microsoft.com/BizTalk/EDI/X12/2006
] を選択します。Note
プロパティを設定すると、BizTalk Serverは受信 850 インターチェンジの処理に使用するスキーマを決定できます。 グリッド内の行に入力された [GS02] と [ST01] の値がインターチェンジに設定されている場合は、同じ行にあるターゲットの名前空間により、使用するスキーマが決定されます。
[Contoso-Fabrikam] タブで次の>タスクを実行します。
Note
このチュートリアルでは、必要な値をタブに指定し、アグリーメントを正常に作成できるようにします。 契約を正常に作成するには、両方の一方向アグリーメント タブに ISA5、ISA6、 ISA7、 ISA8 に対して定義された値が必要 です。
[ 識別子 ] ページの [ インターチェンジの設定] セクションで、テスト メッセージのヘッダー フィールドの値に対応する修飾子フィールドと識別子フィールド (ISA5、 ISA6、 ISA7、 ISA8) の値を入力します。
Note
このチュートリアルでは、 ISA5 を ZZ、 ISA6 を 1234567、 ISA7 を ZZ、 ISA8 を 7654321に設定します。
[適用] をクリックします。
[OK] をクリックします。 新しく追加された契約は、[パーティとビジネス プロファイル] ウィンドウの [契約] セクションに一覧表示されます。 新しく追加したアグリーメントは既定で有効になります。
チュートリアルのテスト
ここでは、チュートリアルをテストする方法について説明します。
ソリューションをテストする
Visual Studio で、\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\AS2 Tutorial\Sender フォルダーで Sender.csproj プロジェクトを開きます。
HttpSender.cs で、次の行をコメント アウトします (//Request Asynchronous MDN コメント行のすぐ下)。
Stream sr = new FileStream(getBizTalkInstallPath() + @"SDK\AS2 Tutorial\X12_00401_864.edi", FileMode.Open, FileAccess.Read);
次の行のコメント アウトを解除します (//Request Synchronous MDN コメント行のすぐ下)。
Stream sr = new FileStream(getBizTalkInstallPath() + @"SDK\AS2 Tutorial\X12_00401_864-Sync.edi", FileMode.Open, FileAccess.Read);
このプロジェクトをビルドします。
Windows エクスプローラーで、\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\AS2 Tutorial に移動します。 メモ帳で X12_00401_864-Sync.edi を開きます。 Disposition-Notification-Options ヘッダーを定義している行を削除し、ファイルを保存します。
コマンド ウィンドウを開きます。 \Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\AS2 Tutorial\Sender\bin\debug に移動します。 Sender.exeを実行します。
Note
このインスタンスで Sender.exe を実行すると、メッセージ X12_00401_864-sync.edi が Contoso 仮想ディレクトリ (BTS HTTP 受信場所) に送信されます。
コマンド ウィンドウに MDN が表示されることを確認します。 MDN AS2-From が Contoso で、AS2-To が Fabrikam であることを確認します。
Note
Sender.exe によってコマンド ウィンドウに MDN が表示されます。
EDI ペイロードを (\EDI_to_Contoso) に送信するために作成した Contoso ローカル フォルダーを開きます。 フォルダーに .XML ファイルがあることを確認します。 XML ファイルを開き、そのファイルに 864 トランザクション セットが含まれていることを確認します。
メモ帳でテスト メッセージ X12_00401_864-Sync.edi を開き、 \EDI_to_Contoso ローカル フォルダーの出力メッセージのトランザクション セットが、X12_00401_864-Sync.edi 入力メッセージのトランザクション セットに対応していることを確認します。