ダブルアクション PIPAutomation オーケストレーション
DoubleAction.odx のサンプルは、オーケストレーションを実装し、ダブルアクションの PIP (Partner Interface Process) である 0C2、0C4、3A2、および 3A40 に対する応答を自動的に生成する方法を示します。 このサンプル プロジェクトを拡張し、さらに多くのダブルアクション PIP をサポートすることもできます。
Note
サンプル フォルダーに入っているマップはサンプルです。 これらを使用するには、特定の要件に応じて変更する必要があります。
Note
シングルアクション PIP ではなく、ダブルアクション PIP のみをサポートするように、このサンプルを拡張してください。 このオーケストレーションは、シングルアクション PIP を処理するように拡張すると、エラーを返します。 このオーケストレーションがシングルアクション PIP を処理しないように、次の「シングルアクション メッセージのフィルタリング」を参照してください。
既定では、Microsoft® BizTalk Accelerator for RosettaNet (BTARN) セットアップ プログラムは、このサンプル<を drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction にインストールします。
このサンプル プロジェクトには次のものが含まれています。
ストアド プロシージャ (
PipAutomationGetAction)
PIP 0C2、0C4、3A2、3A4 の新しいアクション メッセージを取得します。SQL ストアド プロシージャにバインドされた受信場所 (MessagesToLOB_Receive_Location)
各 PIP を処理するオーケストレーション (DoubleAction.odx) は、各 PIP のマップを基に適切な応答を生成して、それを BTARNDATA データベースの MessagesFromLOB テーブルに保存します。 オーケストレーションでは、Microsoft.Solutions.BTARN.Shared.dll の
RNIFSubmit
メソッドを使用してメッセージを送信します。Setup.bat ファイルが DoubleAction オーケストレーションで使用する MessagesToLOB_Receive_Port の作成に使用するバインド ファイル (DoubleActionBinding.xml)。
サンプルをビルドし、初期化するセットアップ ファイル。 BizTalk Serverが 32 ビット コンピューターで実行されている場合は、drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet \SDK\PIPAutomation\DoubleAction フォルダーに <setup.bat ファイルを実行します。 BizTalk Serverが 64 ビット コンピューターで実行されている場合は、同じフォルダーで setupx64.bat を実行します。
オーケストレーションは、BTARNData データベースの PipAutomationGetAction ストアド プロシージャを使用してメッセージを受信します (ソース ファイルは DoubleAction ディレクトリ内の DoubleAction.sql)。 このストアド プロシージャは MessagesToLOB テーブルからメッセージを取得します。
このサンプル プロジェクトを拡張してダブルアクション PIP のサポートを追加するには、オーケストレーションにダブルアクション PIP のパスを追加します。 このパスには、要求メッセージに対する応答メッセージを構成するマップが含まれます。 マップの例については、「 3A2 Request to 3A2 Response Map Sample 」と 「3A4 Request to 3A4 Response Map Sample [RN3]」を参照してください。
このサンプルを作成および初期化するには
コマンド プロンプトで、drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction フォルダーを見つけます<。
Note
セットアップ プログラムを実行する前に、メモ帳で DoubleAction.sql ファイル (上記のフォルダー内) を開きます。 [ファイル] メニューで、[名前を付けて保存] をクリックします。 [ エンコード ] ボックスの一覧 で [ANSI] を選択し、[ 保存] をクリックします。 [はい] をクリックして、既存のファイルを上書きします。
BizTalk Serverが 32 ビット コンピューターで実行されている場合は、drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction フォルダーに <setup.bat ファイルを実行します。 BizTalk Serverのインストールが 64 ビット コンピューターで実行されている場合は、同じフォルダーで setupx64.bat を実行します。 バッチ ファイルによって、次の処理が実行されます。
MESSAGESToLOB テーブルからアクション メッセージを取得する SQL ストアド プロシージャ (
PipAutomationGetAction
) を BTARNDATA データベースに作成します。 これによって、取得したレコードが再び読み取られることもなくなります。HeaderHelper .NET プロジェクトをコンパイルし、グローバル アセンブリ キャッシュにアセンブリを登録します。
BizTalk Server SQL 受信ポートを作成してバインドします (MessagesToLOB_Receive_Port)。
受信場所 (MessagesToLOB_Receive_Location) を有効にします。
ダブルアクション PIPAutomation オーケストレーション (DoubleAction.odx) をコンパイルし、展開します。
BizTalk Server オーケストレーションをバインドして開始します。
Note
コンパイル中に警告がいくつか表示されます。 これらの警告は無視してかまいません。
Note
このサンプルでは、プロジェクトの配置時に既定のホスト名 BizTalkServerApplication を使用します。 別のホストでサンプルを実行する場合は、SDK>\PIPAutomation\DoubleAction フォルダーの下<の DoubleActionBinding.xml にある既定のホスト名を編集する必要があります。
ダブルアクション PIPAutomation サンプルを実行するには
ホーム ロールが開始側の 3A4 アグリーメントを作成します。 ホーム組織の GBI を 123456789 に設定し、パートナーの GBI を 987654321 に設定します。 この設定により、SDK の LOBApplication フォルダーの下の SampleInstances フォルダーにあるサンプルを使用できるようになります。
ループバック アグリーメント ミラー ユーティリティを使用して、手順 1. で作成した 3A4 PIP のミラーを作成します。
LOBApplication.exe SDK ユーティリティを使用して、3A4 PIP 要求メッセージを送信します。 BTARN SDK には、インストール ディレクトリ>\SDK\LOBApplication\SampleInstances\3A4_Request.xml フォルダー<に入力サンプルが含まれています。
BTARNDATA データベースで次のクエリを実行します。
Select * from MessagesToLOB
数秒後に、4 つの新しいメッセージがこのテーブルに表示されます。 そのうち 2 つは受信確認シグナルです。 1 つのシグナルは Async 3A4 要求メッセージです。 1 つのシグナルは Async 3A4 応答メッセージです。
Note
Setup.bat によって行われた変更を元に戻すには、Cleanup.bat を実行します。 Setup.bat を再度実行する場合は、その前に Cleanup.bat を実行してください。
注釈
パブリック オーケストレーションは受信確認 (ACK および NACK シグナル メッセージ) を自動生成します。 基幹業務 (LOB) アプリケーションで作成する必要はありません。
MessagesFromLOB テーブルにルーティングされるメッセージの形式を LOBMessage と呼びます。 スキーマは C:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\RNIFSchemas\GlobalSchemas\LOBMessage.xsd で使用できます。 メソッドを使用する RNIFSubmit
場合は、メッセージ形式を操作する必要はありません。 ServiceContent に追加情報を含めて送信するだけです。 RNIFSubmit
によって MessagesFromLOB テーブルにレコードが生成されます。
シングルアクション メッセージのフィルタリング
このオーケストレーションはダブルアクション メッセージのみを受信します。 このサンプル プロジェクトがシングルアクション PIP をサポートするように拡張しないでください。 このオーケストレーションを使用してシングルアクション メッセージを処理しようとすると、エラーが表示されます。 オーケストレーションがシングルアクション メッセージを受信しないようにするには、PIPAutomationGetAction ストアド プロシージャの次の行を変更してください。
SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB
上記の行に WHERE 句を追加すると、シングルアクション メッセージがフィルタで除外されます。 処理するシングルアクション メッセージのすべてに WHERE 句を含めます。 行は次のようになります。
SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB WHERE PIPCode NOT IN ( '0A1', '3B2', '3C3', '0C1', '0C3' )
参照
3A2 要求から 3A2 応答へのマップ サンプル
3A4 要求から 3A4 応答へのマップ サンプル
オーケストレーション サンプル