BizTalk Server での EDI の処理
このトピックでは、EDI メッセージの受信側と送信側の処理、および EDI メッセージングの実現における取引先アグリーメントの役割について説明します。
EDI 処理の取引先アグリーメント
取引先契約は、BizTalk Serverでの EDI サポートにおいて重要な役割を果たします。 BizTalk Serverの EDI 処理に関連するほとんどの構成および管理機能は、ビジネス プロファイル間の取引先契約を構成することによって実行されます。 アグリーメントには、両方の取引先の特定のビジネス プロファイルから、共通する双方向のメッセージ処理プロパティがまとめられます。 アグリーメントは、各ビジネス プロファイルに対して定義されたプロトコル設定に基づいて作成されます。 2 つのビジネス プロファイル間に取引先アグリーメントを実装するには、メッセージを交換する各ビジネス プロファイルのプロパティを定義します。 各ビジネス プロファイルのプロパティはインターチェンジ受信者およびインターチェンジ送信者として設定します。 受信メッセージを処理したり、送信メッセージを生成したりするには、解決先の契約とメッセージに適用されるスキーマBizTalk Server知っている必要があります。 BizTalk Serverが契約を決定できない場合は、フォールバック取引先契約の TPM インターフェイスで定義されているプロパティが使用されます。
TPM には EDIFACT プロパティ用および X12 プロパティ用の 2 つの主要なエンコード プロトコル設定のセットがあります。 これら 2 つのプロパティ セットはよく似ています。 プロトコル設定の詳細については、「プロトコル 設定」を参照してください。 契約の詳細については、「 取引先契約」を参照してください。 プロトコル設定と取引先アグリーメントは、取引先管理 (TPM) ユーザー インターフェイスで設定します。 TPM 画面は、BizTalk Server管理コンソールの [パーティ] ノードにあります。 BizTalk Serverで EDI 処理を構成する開発者である必要はありません。
取引先契約が EDI 処理にどのように役立つかの詳細については、「EDI 処理における契約の役割」を参照してください。
受信側の EDI 処理
BizTalk Serverが EDI メッセージを受信すると、EDI 受信パイプラインでメッセージが処理されます。 受信パイプラインは、以下の基本的な処理を実行します。
取引先アグリーメントの参照およびスキーマの決定を行います。
Note
以前のバージョンのBizTalk Serverでは、パーティ定義にも契約定義が含まれていました。 そのため、受信パイプラインがパーティのプロパティを検索する場合は、パーティの定義内でアグリーメント定義を内部的に検索してから、必要に応じてメッセージを処理します。 BizTalk Serverでは、パーティ (または取引先) は取引先契約とは異なるため、受信パイプラインは特に取引先契約を検索します。
Note
メッセージが解決されるすべてのアグリーメントが無効になっている場合、メッセージは中断されます。 また、イベント ログに警告が記録されます。
1 つの EDI メッセージに複数のインターチェンジが含まれている場合、インターチェンジを分割し、各インターチェンジを別々に処理します (この機能が有効な場合)。 詳細については、「 単一メッセージでの複数インターチェンジの受信の有効化」を参照してください。
各 EDI インターチェンジを解析し、X12 または EDIFACT でエンコードされたデータを XML ドキュメントに変換します。
EDI 標準、パートナー アグリーメント、およびメッセージ スキーマに従ってエンベロープとそのメッセージを検証します。
インターチェンジがバッチ処理されている場合は、バッチ処理されているインターチェンジを分割して、トランザクション セットごとに XML ファイルを作成し、バッチ処理に必要なプロパティを昇格させるか、インターチェンジを保持します。
受信確認を生成します。
EDI エンベロープをコンテキスト プロパティに変換し、EDI 処理のための他のプロパティを昇格させます。
バッチ処理を制御するプロパティを昇格させます。 これには、バッチ解除されたトランザクション セットを複数のパーティに送信することが含まれることもあります。
受信側の EDI 処理を使用する場合は、次の点を考慮する必要があります。
受信場所では、あらゆる種類のトランスポートを使用できます。
EDI 受信側の処理の詳細については、「EDI メッセージを受信BizTalk Server方法」を参照してください。
受信パイプラインで EDI 逆アセンブラーによって実行される特定の処理の詳細については、「 EDI 逆アセンブラーのしくみ」を参照してください。
EDI バッチ処理
受信メッセージがバッチである場合、EDI 受信パイプラインは構成に応じて、バッチ処理されたインターチェンジをその構成トランザクション セットに分割するか、バッチ処理されたインターチェンジを保持します。 EDIReceive パイプラインは BatchMarker パイプライン コンポーネントを使用して、バッチ処理するインターチェンジをすべてバッチ処理オーケストレーションまたはルーティング オーケストレーションにルーティングします。
受信側の処理の後、バッチ処理の対象のトランザクション セットはバッチ処理オーケストレーションによって処理されます。 バッチ処理オーケストレーションは、フィルター条件、アクティベーションの範囲、およびリリース条件に基づいてバッチを作成します。
バッチ処理されていない EDI トランザクション セットをバッチに送信する必要がある場合は、ルーティング オーケストレーションがトランザクション セットを処理します。 一致するバッチのそれぞれに対してトランザクション セットのコピーが作成されます。
バッチ処理で実行される特定の処理の詳細については、「 受信バッチの処理 」または 「送信 EDI メッセージのバッチ処理」を参照してください。
送信側の EDI 処理
BizTalk Serverが送信 EDI メッセージを生成して送信すると、EDI 送信パイプラインでメッセージが処理されます。 送信パイプラインは、以下の処理を実行します。
取引先アグリーメントの参照およびスキーマの決定を行います。
Note
以前のバージョンのBizTalk Serverでは、パーティ定義にも契約定義が含まれていました。 そのため、送信パイプラインがパーティのプロパティを検索する場合は、パーティの定義内でアグリーメント定義を内部的に検索してから、必要に応じてメッセージを処理します。 BizTalk Serverでは、パーティ (または取引先) は取引先契約とは異なるため、送信パイプラインでは特に取引先契約が検索されます。
Note
メッセージが解決されるすべてのアグリーメントが無効になっている場合、メッセージは中断されます。 また、イベント ログに警告が記録されます。
EDI メッセージをシリアル化し、X12 または EDIFACT でエンコードされたデータに XML ドキュメントを変換します。
X12 の区切り文字としても使用される文字がメッセージ データに含まれる場合は、ペイロードの文字を別の文字に置き換えるように送信パイプラインを構成できます。
EDI メッセージがバッチ処理されたインターチェンジの場合、送信パイプラインは、バッチ処理オーケストレーションでバッチが構築された後、BizTalk MessageBox からインターチェンジを取得します。
送信メッセージを検証します。
実行時に指定されたパーティのプロパティまたは EDI エンベロープのプロパティに従って、EDI エンベロープを作成します。
受信した受信確認を処理します。
送信側の EDI 処理を使用する場合は、次の点を考慮する必要があります。
送信ポートでは、あらゆる種類のトランスポートを使用できます。
EDI 送信側処理の詳細については、「EDI メッセージの送信方法BizTalk Server」を参照してください。
送信パイプラインで実行される特定の処理の詳細については、「 EDI アセンブラーのしくみ」を参照してください。
参照
BizTalk Server における EDI のサポート
EDI のサポートに関する問題点
EDI 処理におけるアグリーメントのロール
BizTalk Server が EDI メッセージを受信する方法
BizTalk Server が EDI メッセージを送信する方法
BizTalk Server EDI ソリューションの開発と構成