メッセージ エンリッチメント のサンプルでは、X12 および EDIFACT ドキュメントのトランザクション セット メッセージにインターチェンジ ヘッダーを追加する方法を示します。
このサンプルの役割
このサンプルでは、EDIFACT の UNA、UNB、UNG ヘッダー、X12 の ISA ヘッダーをトランザクション セットに追加する方法を示します。 具体的には、このサンプルでは次の処理を行います。
\Message Enrichment\In フォルダーにテスト メッセージをドロップすると、受信ポートによってメッセージが取得され、処理され、メッセージ ボックスにドロップされます。
MessageEnrichmentOrchestration は、受信図形に設定されたフィルター式に基づいてメッセージをサブスクライブするため、MessageBox からテスト メッセージを取得します。
オーケストレーションは、メッセージのコンテキスト プロパティからインターチェンジ ヘッダーを読み取ります。
注
UNA ヘッダーと UNG ヘッダーは EDIFACT メッセージでは省略可能であるため、メッセージのコンテキスト プロパティに含まれていない可能性があります。
オーケストレーションは、インターチェンジヘッダーとメッセージ本文の両方を 1 つの新しいメッセージに書き込みます。
オーケストレーションは、ReceivePortNameCorrelationType 関連付け型で設定されている追加のプロパティをメッセージに昇格させます。 これにより、オーケストレーションのユーザーは、サブスクリプションに必要なプロパティの一覧を選択できます。 これらのプロパティは、メッセージの構築図形で記述されます。 元のメッセージに書き込まれたすべてのコンテキスト プロパティが新しいメッセージに書き込まれるわけではありません。
オーケストレーションによって、新しいメッセージが MessageBox にドロップされます。
送信ポートは新しいメッセージを取得し、FILE アダプターを介して \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 トランザクション セット メッセージにインターチェンジ ヘッダーを追加するために必要なアクションの作業例として使用します。
このサンプルのビルドと初期化
メッセージ エンリッチメント サンプルをビルドして初期化するには、このサンプルの 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でバインディング情報を読み取ります。
注
このプロジェクトのバインドでは、BizTalk ホストが認証信頼済みとしてマークされている必要があります。 信頼されていないホストでこれを使用するには、MessageEnrichmentBindings.xml を変更し、HostTrusted="true" エントリを HostTrusted="false" に変更します。
オーケストレーション バインドを更新します。
送信ポート、送信ポート グループ、および受信ポートを更新します。
パーティと参加リストを更新します。
送信ポートを開始します。
受信場所を有効にします。
オーケストレーションを参加させ、開始します。
BizTalk Server は、このサンプルを操作する準備ができました。
このサンプルの実行
メッセージ エンリッチメント サンプルを実行するには、次の手順に従います。
このサンプルを実行するには
\MessageEnrichment\Instances フォルダーから \MessageEnrichment\In フォルダーに EDIFACT_examples.edi ファイルをコピーします。
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 ファイルの XML 表現であり、出力ファイルに X12 ISA ヘッダーがある点を除き、X12_examples.edi ファイルと同じ内容であることを確認します。
このサンプルで使用するクラスまたはメソッド
無し