メッセージ強化サンプル (BizTalk Server サンプル)
このメッセージ強化サンプルでは、X12 ドキュメントおよび EDIFACT ドキュメント用のインターチェンジ ヘッダーをトランザクション セット メッセージに追加する方法を示します。
このサンプルの処理
このサンプルでは、EDIFACT 用の UNA、UNB、および UNG ヘッダーと X12 用の ISA ヘッダーをトランザクション セットに追加する方法を示します。 具体的には、このサンプルは以下の処理を行います。
テスト メッセージを \Message Enrichment\In フォルダーにドロップすると、受信ポートがそのメッセージを取得して処理し、MessageBox にドロップします。
MessageEnrichmentOrchestration は、受信図形に対して設定されているフィルター式に基づいてメッセージにサブスクライブするため、このテスト メッセージを MessageBox から取得します。
オーケストレーションは、このメッセージのコンテキスト プロパティからインターチェンジ ヘッダーを読み取ります。
Note
UNA ヘッダーと UNG ヘッダーは EDIFACT メッセージに含まれている必要がないため、メッセージのコンテキスト プロパティに含まれていない場合があります。
オーケストレーションは、インターチェンジ ヘッダーとメッセージ本文の両方を単一の新規メッセージに書き込みます。
オーケストレーションは、ReceivePortNameCorrelationType 関連付けの種類で設定されている追加のプロパティをメッセージに昇格させます。 これにより、オーケストレーションのユーザーは、サブスクリプションに必要なプロパティの一覧を選択できるようになります。 これらのプロパティは、メッセージの構築図形に書き込まれます。 元のメッセージに書き込まれたすべてのコンテキスト プロパティが新規メッセージに書き込まれるわけではありません。
オーケストレーションは、新規メッセージを MessageBox にドロップします。
送信ポートは、新規メッセージを取得し、ファイル アダプター経由で \Message Enrichment\Out フォルダーに送信します。
このサンプルの場所
このサンプルは、BizTalk Server インストール フォルダー \Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\Samples\EDI\Message Enrichment にあります。
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
Cleanup.bat | サンプル シナリオの展開を解除します。 このファイルが正しく実行されるには、オーケストレーションのアクティブなインスタンスがないことが必要です。 アクティブなインスタンスがある場合、ファイルは正しく実行されません。 |
MessageEnrichment.sln | MessageEnrichment プロジェクトと MessageEnrichmentLibrary プロジェクトが含まれています。 |
Setup.bat | 受信ポート、送信ポート、およびオーケストレーションから構成されるサンプル シナリオを展開します。 |
EDIFACT_example.edi | 入力 EDIFACT メッセージです。 |
X12_example.edi | 入力 X12 メッセージです。 |
MessageEnrichment.btproj | MessageEnrichment のオーケストレーションとスキーマが含まれたプロジェクトです。 |
MessageEnrichmentBindings.xml | オーケストレーション、ポート、およびパーティのバインドが含まれたファイルです。 |
MessageEnrichmentOrchestration.odx | ヘッダーをメッセージに追加するオーケストレーションです。 |
MessageEnrichmentOrchestration.odx.cs | ヘッダーをメッセージに追加するオーケストレーション コードです。 |
EFACT_D98B_APERAK.xsd | 入力メッセージの EDIFACT スキーマです。 |
Enriched_EFACT_D98B_APERAK.xsd | 出力メッセージの EDIFACT スキーマです。 |
X12_00401_864.xsd | 入力メッセージの X12 スキーマです。 |
Enriched_X12_00401_864.xsd | 出力メッセージの X12 スキーマです。 |
Headers.xsd | 入力メッセージに追加されるヘッダーのスキーマです。 |
MessageEnrichmentLibrary.csproj | Headers.cs、OrchestrationUtilities.cs、および ParseHeaders.cs の各ファイルが含まれたプロジェクトです。 |
Headers.cs | ヘッダー データを表すクラスが含まれています。 |
OrchestrationUtilities.cs | オーケストレーションによって使用されるユーティリティ メソッドが含まれています。 |
ParseHeaders.cs | 新規メッセージで使用される UNA の既定値が含まれています。 これらの値は、ParseHeaders.cs の SerializeEDIFACTHeaders メソッドから取得されます。 |
このサンプルの使用方法
このサンプルは、インターチェンジ ヘッダーを EDI トランザクション セット メッセージに追加するために必要なアクションの実行例として使用します。
このサンプルのビルドと初期化
Message Enrichment サンプルをビルドして初期化するには、このサンプルの BizTalk プロジェクトをビルドして展開し、受信ポートと受信場所を構成して、2 つの異なる送信ポートを構成する必要があります。
このサンプルの BizTalk プロジェクトをビルドして展開するには
Notepad.Exe を使用して、\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\Samples\EDI\MessageEnrichment\ を開きます。
MessageEnrichment\properties\AssemblyInfo.cs ファイルの下部に次の行を追加します。[assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssembly(typeof(Microsoft.BizTalk.XLANGs.BTXEngine.BTXService))]
変更した AssemblyInfo.cs ファイルを保存し、メモ帳を終了します。
コマンド ウィンドウで、次のフォルダーに移動します。
\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\Samples\EDI\Message Enrichment
Setup.batを実行します。これにより、次のアクションが実行されます。
\MessageEnrichment フォルダーに、このサンプルの受信 (in) フォルダーと send (out) フォルダーを作成します。
キーのペアを MessageEnrichmentLibrary\testkey.snk に書き込みます。
MessageEnrichmentLibrary.btproj プロジェクトを構築し、展開します。
MessageEnrichment.btproj プロジェクトを構築して展開します。
MessageEnrichmentBindings.xml のバインド情報を読み取ります。
Note
このプロジェクトのバインドでは、BizTalk ホストが信頼された認証として設定されていることが必要です。 信頼されていないホストでバインドを使用するためには、MessageEnrichmentBindings.xml で HostTrusted="true" エントリを HostTrusted="false" に変更します。
オーケストレーション バインドを更新します。
送信ポート、送信ポート グループ、および受信ポートを更新します。
パーティと参加状況を更新します。
送信ポートを開始します。
受信場所を有効にします。
オーケストレーションを登録して開始します。
BizTalk Server でこのサンプルを使用する準備ができました。
このサンプルの実行
Message Enrichment サンプルを実行するには、次の手順に従います。
このサンプルを実行するには
EDIFACT_examples.edi ファイルを \MessageEnrichment\Instances フォルダーから \MessageEnrichment\In フォルダーにコピーします。
EDIFACT_examples.edi ファイルが \MessageEnrichment\In フォルダーに表示されなくなり、\MessageEnrichment\Out フォルダーに表示されていることを確認します。
\MessageEnrichment\Out フォルダーのファイルを開きます。 ファイルが \MessageEnrichment\Instances フォルダーにある EDIFACT_examples.edi ファイルの XML 表記であることを確認します。また、出力ファイルに EDIFACT UNA、UNB、および UNG の各ヘッダーがあることを除き、ファイルのコンテンツが EDIFACT_examples.edi ファイルと同じであることを確認します。
\MessageEnrichment\Instances フォルダーの X12_examples.edi ファイルに対して手順 1. と 2. を繰り返します。
\MessageEnrichment\Out フォルダーの新規ファイルを開きます。 ファイルが \MessageEnrichment\Instances フォルダーにある X12_examples.edi file ファイルの XML 表記であることを確認します。また、出力ファイルに X12 ISA ヘッダーがあることを除き、ファイルのコンテンツが X12_examples.edi ファイルと同じであることを確認します。
このサンプルで使用されるクラスまたはメソッド
なし