チュートリアル (X12): バッチ EDI インターチェンジの送信
このチュートリアルでは、BizTalk Serverを使用してパーティ間でバッチ EDI インターチェンジを送信するためのソリューションを作成する一連の手順について説明します。
前提条件
BizTalk Server Administrators または B2B Operators グループのメンバーとしてログオンBizTalk Server必要があります。
ソリューションがバッチ EDI インターチェンジを送信する方法
このソリューションは次の処理を実行します。
受信場所は、 パーティ A から EDI インターチェンジを受信します。
Note
この一覧のイベントは、示されている順序で発生するとは限りません。
受信パイプラインが、インターチェンジの EDI 形式を内部 XML 形式に変換し、 インターチェンジがバッチ処理されることを指定します。 その結果、BatchMarkerReceivePipeline コンポーネントは プロパティと
EDI.BatchId
プロパティをEDI.ToBeBatched==True
昇格します。 インターチェンジを MessageBox にドロップします。バッチ処理オーケストレーションは、 と
EDI.BatchId==%BatchID%
に基づいてEDI.ToBeBatched==True
メッセージをサブスクライブするため、受信したインターチェンジを MessageBox から取得します。受信場所が、最初のインターチェンジと同じ送信元から 2 つ目の EDI インターチェンジを受信します。
受信場所が、手順 2. と同様にインターチェンジを処理した後で、インターチェンジを MessageBox にドロップします。
バッチ処理オーケストレーションが手順 3. と同様にインターチェンジを受信します。
リリース条件が満たされた後 (リリース条件はインターチェンジの照合方法を定義します)、バッチ処理オーケストレーションは、すべてのインターチェンジを含むインターチェンジをアセンブルし、、コンテキスト プロパティを
EDI.DestinationPartyName
昇格EDI.ToBeBatched==False
EDI.BatchName
させます。 その後で、バッチ インターチェンジを MessageBox にドロップします。送信ポートは、コンテキスト プロパティ
EDI.ToBeBatched
==False およびEDI.DestinationPartyName
をサブスクライブすることによって、EDI.BatchName
バッチインターチェンジを取得します。送信パイプラインは、バッチインターチェンジのエンベロープに追加のプロパティを適用し、インターチェンジを宛先パーティ のパーティ B に送信します。
Note
詳細については、「 Batched EDI インターチェンジのアセンブル」を参照してください。
次の図は、このソリューションのアーキテクチャを示しています。
このソリューションの機能
このチュートリアルを実行するために、以下の機能を有効にします。
このソリューションは、EDIFACT エンコードではなく X12 エンコードを使用するインターチェンジを対象に設計されています。
Note
HIPAA および EDIFACT エンコードに使用される構成は、X12 エンコードに使用される構成によく似ています。
最初に受信したインターチェンジ、または送信されたバッチ インターチェンジへの応答として、技術確認または機能確認は返されません。
Note
EDI 受信確認の生成の詳細については、「 チュートリアル (X12): EDI インターチェンジの受信と受信確認の送信」を参照してください。
このソリューションでは、一方向の受信ポートと静的な一方向送信ポートを使用します。 これらのポートは、FILE トランスポートの種類で構成されます。
EDI レポートが有効になります。
インターチェンジの状態レポートに表示するトランザクション セットが保存されます。
チュートリアルの構成とテスト
このソリューションに必要な手順は以下のとおりです。
BizTalk プロジェクトに必要なメッセージ スキーマを追加してビルドおよび展開し、BizTalk サーバーがメッセージを処理するときにそのスキーマを利用できるようにします。
BatchControlMessageReccvLoc 受信場所の SQL アダプターのポーリング間隔を更新して、バッチ処理オーケストレーション インスタンスをアクティブにするコントロール メッセージを送信する [開始] ボタンをクリックすると、バッチ処理オーケストレーションがすぐにアクティブになるようにします。
パーティから EDI X12 でエンコードされた .txt 入力メッセージを受信するBizTalk Serverの受信ポートを作成します。
パーティ A とパーティ B の両方に対してパーティ (取引先) を作成します。
両方の取引先それぞれにビジネス プロファイルを作成します。
受信するメッセージの EDI プロパティを構成して、2 つのプロファイル間のアグリーメントを作成します。 送信されるバッチ メッセージの EDI プロパティを設定します。 このソリューションでは、850 インターチェンジを 2 つ受信したらパーティ B にバッチを 1 つ送信するように、アグリーメントを構成します。
バッチ EDI インターチェンジを取引先に送信するBizTalk Serverの送信ポートを作成します。 この送信ポートは、静的な一方向の送信ポートとなります。
インターチェンジを処理してバッチとしてまとめるためのアグリーメントに、この送信ポートを関連付けます。
受信場所に関連付けられたローカル フォルダーに 2 つのテスト EDI インターチェンジをドロップして、送信ポートに関連付けられたフォルダーにバッチ インターチェンジがドロップされたことを確認します。
チュートリアルの構成
ここでは、チュートリアルを構成する手順について説明します。
メッセージ スキーマを展開するには
Visual Studio で、BizTalk プロジェクトを作成または開きます。
Note
このトピックは、EDI スキーマ、パイプライン、およびオーケストレーションを含む BizTalk EDI アプリケーションに別のアプリケーションから参照を既に追加していることを前提としています。 そうでない場合は、「BizTalk Server EDI アプリケーションへの参照の追加」を参照してください。
プロジェクトを右クリックし、[ 追加] をポイントして、[ 既存の項目] をクリックします。 \Program Files (x86)\Microsoft BizTalk Server <VERSION>XSD_Schema\EDI\X12\00401 に移動し、テスト メッセージに対応するスキーマをダブルクリックします。
Note
EDI スキーマが \XSD_Schema\EDI フォルダーに解凍されていない場合は、\XSD_Schema\EDI フォルダー内の MicrosoftEdiXSDTemplates.exe ファイルを実行して、スキーマを既定のフォルダーに解凍します。
Note
テスト メッセージには、EDI インターフェイス開発チュートリアルで使用される 850 サンプル メッセージを使用できます。 このファイルは、\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\ に SamplePO.txt されています。 これを行う場合は、\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\Inbound_EDI にあるスキーマ x12_00401_850.xsd を使用する必要があります。
アセンブリ キー ファイルを設定し、アセンブリをビルドおよび展開します。
ポーリング間隔を更新するには
BizTalk Server管理コンソールで、BizTalk グループ、アプリケーション、BizTalk EDI アプリケーション ノード、および受信場所ノードを開きます。 [ 受信場所 ] ノードで、[ BatchControlMessageRecvLoc] を右クリックし、[ プロパティ] をクリックします。
[SQL トランスポートの種類] で、[ 構成] をクリックします。
[ SQL トランスポートのプロパティ ] ダイアログ ボックスで、ポーリング間隔を小さい値に設定します。 たとえば、ポーリング間隔を 5 秒に変更するには、ポーリング 単位 を分ではなく 秒に変更できます。
Note
ポーリング間隔を変更すると、バッチ処理オーケストレーションが正しくアクティブ化されるようになります。
[OK] をクリックしてから、もう一度 [OK] をクリックします。
バッチ処理される EDI メッセージを受信するための一方向の受信ポートを作成するには
バッチ処理される EDI メッセージを受信するためのローカル フォルダーを作成します。
BizTalk Server管理コンソールで、BizTalk アプリケーション 1 ノードの下にある [受信ポート] ノードを右クリックし、[新規] をポイントして、[一方向の受信ポート] をクリックします。
受信ポートに名前を付け、コンソール ツリーの [ 受信場所 ] をクリックします。
[新規作成] をクリックします。
受信場所に名前を付け、[種類] に [ファイル] を選択し、[構成] をクリックします。
受信フォルダーのフォルダーと、*.txtなどのファイル マスクのマスクを入力します。
[OK] をクリックします。
[ 受信パイプライン] で、[ EdiReceive] を選択します。
[OK] をクリックしてから、もう一度 [OK] をクリックします。
コンソール ツリーで、[ 受信場所] をクリックします。 [ 受信場所 ] ウィンドウで、受信場所を右クリックし、[ 有効にする] をクリックします。
パーティ A のパーティおよびビジネス プロファイルを作成するには
BizTalk Server管理コンソールで [パーティ] ノードを右クリックし、[新規] をポイントして、[パーティ] をクリックします。
[名前] テキスト ボックスにパーティの 名前 を入力し、[OK] をクリック します。
Note
[Local BizTalk processes messages received by the Party OR supports messages from this party チェック] ボックスを選択すると、作成するパーティが、BizTalk Serverをホストしているのと同じorganization用であることを指定できます。 その指定に基づいて、アグリーメントを作成するときに一部のプロパティが有効または無効になります。 ただし、このチュートリアルでは、このチェック ボックスはオンのままでかまいません。
パーティ名を右クリックし、[ 新規] をポイントして、[ ビジネス プロファイル] をクリックします。
[プロファイルのプロパティ] ダイアログ ボックスの [全般] ページで、[名前] テキスト ボックスに「PartyA_Profile」と入力します。
Note
パーティを作成すると、プロファイルも作成されます。 新しいプロファイルを作成する代わりに、そのプロファイルの名前を変更して使用できます。 プロファイルの名前を変更するには、プロファイルを右クリックし、[プロパティ] を選択 します。 [ 全般 ] ページで、プロファイルの名前を指定します。
パーティ B のパーティおよびビジネス プロファイルを作成するには
BizTalk Server管理コンソールで [パーティ] ノードを右クリックし、[新規] をポイントして、[パーティ] をクリックします。
[名前] テキスト ボックスにパーティの 名前 を入力し、[OK] をクリック します。
Note
[Local BizTalk processes messages received by the Party OR supports messages from this party チェック] ボックスを選択すると、作成するパーティが、BizTalk Serverをホストしているのと同じorganization用であることを指定できます。 その指定に基づいて、アグリーメントを作成するときに一部のプロパティが有効または無効になります。 ただし、このチュートリアルでは、このチェック ボックスはオンのままでかまいません。
パーティ名を右クリックし、[ 新規] をポイントして、[ ビジネス プロファイル] をクリックします。
[プロファイルのプロパティ] ダイアログ ボックスの [全般] ページで、[名前] テキスト ボックスに「PartyB_Profile」と入力します。
Note
パーティを作成すると、プロファイルも作成されます。 新しいプロファイルを作成する代わりに、そのプロファイルの名前を変更して使用できます。 プロファイルの名前を変更するには、プロファイルを右クリックし、[プロパティ] を選択 します。 [ 全般 ] ページで、プロファイルの名前を指定します。
2 つのビジネス プロファイル間のアグリーメントを作成するには
[PartyA_Profile] を右クリックし、[新規] をポイントして、[契約] をクリックします。
[ 全般プロパティ ] ページの [ 名前 ] テキスト ボックスに、契約の名前を入力します。
[ プロトコル ] ドロップダウン リストから [ X12] を選択します。
[ Second Partner]\(2 番目のパートナー \) セクションで、[Name]\( 名前 \) ドロップダウン リストから [ PartyB] を選択します。
[ 2 番目のパートナー ] セクションの [ プロファイル ] ドロップダウン リストから、[ PartyB_Profile] を選択します。
[ 全般 ] タブの横に 2 つの新しいタブが追加されていることがわかります。各タブは一方向アグリーメントを構成するためのものであり、各一方向アグリーメントはメッセージの 1 つの完全なトランザクション (メッセージ転送と受信確認転送を含む) を表します。
[ 全般 ] タブの [ 全般プロパティ ] ページの [ 共通ホスト設定] セクションで、[ レポートを有効にする] を選択し、[ レポート用にメッセージ ペイロードを格納する] を選択します。
[ PartyA-PartyB] タブで次の>タスクを 実行します。
[インターチェンジの設定] セクションの [識別子] ページで、テスト メッセージのヘッダー フィールドの値に対応する修飾子フィールドと識別子フィールド (ISA5、ISA6、ISA7、ISA8) の値を入力します。
Note
BizTalk Server契約解決を実行するには、送信者と受信者の修飾子フィールドと識別子フィールドが必要です。 インターチェンジ ヘッダーの ISA5、ISA6、ISA7、および ISA8 の値と、契約のプロパティの値が一致します。 BizTalk Serverでは、送信者修飾子と識別子 (受信者修飾子と識別子なし) を照合することで、契約も解決されます。 BizTalk Server契約を解決できない場合は、フォールバック アグリーメントのプロパティが使用されます。
Note
テスト メッセージとして "EDI インターフェイス開発者チュートリアル" の SamplePO.txt ファイルを使用している場合は、 ISA5 を ZZ に、 ISA6 を THEM に、 ISA7 を ZZ に、 ISA8 を US に設定します。
[インターチェンジの設定] セクションの [検証] ページで、[ISA13 の重複を確認する] オプションがオフになっていることを確認します。
Note
[ Check for duplicate ISA13]\(ISA13 の重複チェック \) プロパティをクリアすると、同じメッセージの複数のインスタンスを受信できます。
[ 文字セットと区切り記号 ] ページの [ インターチェンジの設定] セクションで、[ CR LF ] オプションを選択します。
[ バッチ構成] ページの [ インターチェンジの設定] セクションで、次の操作を行います。
[ 新しいバッチ] をクリックします。
[ 識別 ] セクションの [ バッチ名 ] テキストに「」と入力します
Batch1
。[ フィルター ] セクションの [ フィルター ] ボタンをクリックし、[ バッチ フィルター ] ダイアログ ボックスで次の操作を行います。
[プロパティ] 列の下にある空のセルをクリックし、[BTS] を選択します。ReceivePortName。
[演算子] 列の下にある空のセルをクリックし、 を選択します==。
[値] 列の下にある空のセルをクリックし、前に作成した受信ポートの名前を入力します。
[OK] をクリックします。
[ リリース ] セクション で、[トランザクション セットの最大数 ] オプションを選択し、ドロップダウンから [インターチェンジ] を選択し、テキスト ボックスにバッチ処理するインターチェンジの数を入力します。 このソリューションでは、2 つのインターチェンジをバッチ処理するため、テキスト ボックスに「」と入力
2
します。[ アクティブ化 ] セクションで、[ すぐに開始] を選択します。
[封筒] ページ の [ トランザクション セットの設定] セクションで、グリッドの最初の行のすべての列の値を入力します。
プロパティ 目的 [Default] [既定値] を選択します。 メモ:この行を既定値として選択すると、トランザクションの種類、バージョン/リリース、およびターゲット名前空間の値がメッセージに一致しない場合でも、GS1、GS2、GS3、GS7、GS8 の値が使用されます。 トランザクションの種類 テスト メッセージのメッセージの種類 850 - 発注書を選択します。 バージョン/リリース EDI バージョン 00401 を入力します。 ターゲットの名前空間 [ http://schemas.microsoft.com/BizTalk/EDI/X12/2006
] を選択します。GS1 テスト メッセージのメッセージの種類である PO - 発注書 (850) が選択されていることを確認します。 GS2 アプリケーション送信者の値 (たとえば、 購入) を入力します。 GS3 アプリケーション レシーバーの値 ( OrderControl など) を入力します。 GS4 日付の形式を選択します。 メモ: フィールドをクリックして既定値を表示するだけでなく、ドロップダウン リストで値を選択する必要があります。 ドロップダウン リストから値を選択せずにフィールドをクリックしても、値は実際に選択されません。 GS5 時刻の形式を選択します。 GS7 [ X - 認定基準委員会 X12] を選択します。 GS8 EDI バージョン 00401 が入力されていることを確認します。 Note
BizTalk Serverは、トランザクションの種類、バージョン/リリース、およびターゲット名前空間に入力された値に基づいて、送信確認の GS01、GS02、GS03、GS04、GS05、GS07、GS08 の値を設定します。 送信パイプラインは、トランザクション セットの種類、X12 バージョン、およびターゲットの名前空間と、メッセージ ヘッダー内の対応する値との照合を試みます。 成功した場合は、 トランザクションの種類、 バージョン/リリース、および ターゲット名前空間 の値に関連付けられている GS 値が使用されます。
[ PartyB-PartyA] タブで次の>タスクを 実行します。
Note
このチュートリアルでは、必要な値をタブに指定し、アグリーメントを正常に作成できるようにします。 契約を正常に作成するには、両方の一方向アグリーメント タブに ISA5、ISA6、ISA7、ISA8 に対して値が定義されている必要があります。
[インターチェンジの設定] セクションの [識別子] ページで、テスト メッセージのヘッダー フィールドの値に対応する修飾子フィールドと識別子フィールド (ISA5、ISA6、ISA7、ISA8) の値を入力します。
Note
テスト メッセージとして "EDI インターフェイス開発者チュートリアル" の SamplePO.txt ファイルを使用している場合は、ISA5 を ZZ に、ISA6 を US に、ISA7 を ZZ に、ISA8 を THEM に設定します。
[適用] をクリックします。
[OK] をクリックします。 新しく追加された契約は、[パーティとビジネス プロファイル] ウィンドウの [契約] セクションに一覧表示されます。 新しく追加したアグリーメントは既定で有効になります。
バッチ EDI インターチェンジを送信するための静的な一方向の送信ポートを作成するには
バッチ EDI メッセージの送信先ローカル フォルダーを作成します。
BizTalk Server管理コンソールで、[BizTalk アプリケーション 1] ノードの下にある [送信ポート] ノードを右クリックし、[新規] をポイントして、[静的な一方向の送信ポート] をクリックします。
[ 送信ポートのプロパティ ] ダイアログ ボックスで、送信ポートに名前を付けます。
[トランスポート] セクションで、[種類] に [ファイル] を選択し、[構成] をクリックします。
Destination フォルダーのフォルダーと、%MessageID%.txtなどのファイル名を入力します。
[OK] をクリックします。
[ 送信パイプライン] で、[ EdiSend] を選択します。
コンソール ツリーで、[フィルター] を選択 します。 [ フィルター] ページで、次の操作を行います。
グリッドの最初の行で、[EDI] を選択します。DestinationPartyName for Property, == for Operator, the name you selected for the party to send the batch to for Value, and forGroup by.
2 行目で [EDI] を選択します。プロパティの場合は ToBeBatched、==値の場合は False、グループ化の場合はFalse。
3 行目で 、[EDI] を選択します。Property の場合は BatchName、==Operator の場合は BatchName、Value の場合はバッチの名前です。
[OK] をクリックします。
コンソール ツリーで、[ 送信ポート] をクリックします。 [ 送信ポート ] ウィンドウで、送信ポートを右クリックし、[ 開始] をクリックします。
バッチ処理用に作成したアグリーメントに送信ポートを関連付けるには
先ほど作成した契約を右クリックし、[ プロパティ] をクリックします。
[契約のプロパティ] ダイアログ ボックスの [PartyA-PartyB>] タブで、左側のウィンドウの [送信ポート] をクリックします。
[ 送信ポート ] ページの [ インターチェンジの設定] セクションで、前に作成した送信ポートを関連付けます。 [ 送信ポート ] グリッドの [ 名前 ] 列で空のセルをクリックし、ドロップダウン リストから送信ポートを選択します。
[OK] をクリックします。
チュートリアルのテスト
ここでは、チュートリアルをテストする方法について説明します。
チュートリアルをテストするには
Windows エクスプローラーで、受信場所に関連付けられているローカル フォルダーを開き、テスト EDI インターチェンジをそのフォルダーにドロップします。
Note
テスト メッセージには、EDI インターフェイス開発チュートリアルで使用される 850 サンプル メッセージを使用できます。 このファイルは、\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\ に SamplePO.txt されています。 これを行う場合は、\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\Inbound_EDI にあるスキーマ x12_00401_850.xsd を使用する必要があります。
テスト EDI インターチェンジのコピーを、このフォルダーにドロップします。
インターチェンジ用の送信ポートに関連付けられたフォルダーを開き、バッチ インターチェンジを開きます。 インターチェンジに 1 組の ISA ヘッダーと GS ヘッダー、および 2 組のトランザクションが含まれていることを確認します。
参照
BizTalk Server EDI ソリューションの開発と構成
送信バッチの構成
バッチ EDI インターチェンジのアセンブル
バッチ EDI インターチェンジのアセンブル
チュートリアル (X12): EDI インターチェンジの受信と受信確認の送信
チュートリアル (X12): EDI インターチェンジの送信