完了までの時間: 10 分
目的: この手順では、既存の vPrev BizTalk プロジェクトに次の変更を加えます。
WCF ベースの SQL アダプターを使用して、Customer テーブルに対する挿入操作のメタデータを生成します。
vPrev SQL アダプターを使用して挿入操作を実行するための要求メッセージを、WCF ベースの SQL アダプターを使用して挿入操作を実行するための要求メッセージにマップします。
WCF ベースの SQL アダプターを使用して受信した応答メッセージを、vPrev SQL アダプターを使用して受信した応答メッセージにマップします。
[前提条件]
SQL Server データベースの Customer テーブルに対して挿入操作を実行するには、vPrev BizTalk プロジェクトが必要です。
vPrev BizTalk プロジェクトを変更するには
WCF ベースの SQL アダプターを使用して、Customer テーブルに対する挿入操作のメタデータを生成します。 アダプター サービス BizTalk プロジェクト アドインを使用してメタデータを生成できます。
メタデータを生成する方法については、「 SQL アダプターを使用して Visual Studio で SQL Server 操作のメタデータを取得する」を参照してください。 スキーマが生成されると、 TableOperation.dbo.Customer.xsd のような名前のファイルが BizTalk プロジェクトに追加されます。 このファイルには、WCF ベースの SQL アダプターを使用して、SQL Server データベースの Customer テーブルに対して挿入操作を実行するメッセージを送信するためのスキーマが含まれています。
挿入操作のメタデータを生成すると、ポート バインド ファイルも作成されます。 次の手順では、このバインド ファイルを使用して、SQL Server データベースにメッセージを送信する WCF-Custom 送信ポートを作成します。 操作の SOAP アクションは、メタデータを生成した操作にも設定されます。 たとえば、挿入操作のメタデータを生成する場合、送信ポートの SOAP アクションの操作名は "Insert" になります。 ただし、オーケストレーションの一部として作成する論理送信ポートの操作名は、"Operation_1" のように異なる場合があります。 その結果、送信ポートを使用して SQL Server データベースにメッセージを送信すると、エラーが発生します。 これを回避するには、オーケストレーションの論理送信ポートの操作名が、メタデータを生成した操作名と同じであることを確認します。
そのため、このチュートリアルでは、挿入操作のメタデータを生成するため、論理送信ポート操作の名前を "挿入" に変更します。
要求メッセージの場合は、vPrev SQL データベース アダプターを使用して生成されたスキーマを、WCF ベースの SQL アダプターを使用して生成されたスキーマにマップします。
BizTalk マッパーを BizTalk プロジェクトに追加します。 BizTalk プロジェクトを右クリックし、[ 追加] をポイントし、[ 新しい項目] をクリックします。
[ 新しい項目の追加 ] ダイアログ ボックスの左側のウィンドウで、[ マップ ファイル] を選択します。 右側のウィンドウで、[ マップ] を選択します。 RequestMap.btm など、マップの名前を指定します。 追加をクリックします。
[ソース スキーマ] ウィンドウで、[ オープン ソース スキーマ] をクリックします。
[BizTalk 型選択] ダイアログ ボックスで、プロジェクト名を展開し、[スキーマ] を展開し、vPrev SQL アダプターの要求メッセージのスキーマを選択します。 このチュートリアルでは、 New_Migration.InsertCustomerService を選択し、[OK] をクリック します。
[ ソース スキーマのルート ノード ] ダイアログ ボックスで、[ 挿入] を選択し、[OK] をクリック します。
[宛先スキーマ] ウィンドウで、[ 宛先スキーマを開く] をクリックします。
[BizTalk 型選択] ダイアログ ボックスで、プロジェクト名を展開し、[スキーマ] を展開して、WCF ベースの SQL アダプターの要求メッセージのスキーマを選択します。 このチュートリアルでは、 New_Migration.TableOperation.dbo.Customer を選択し、[OK] をクリック します。
[ ターゲット スキーマのルート ノード ] ダイアログ ボックスで、[ 挿入] を選択し、[OK] をクリック します。
次の図に示すように、両方のスキーマの各要素をマップします。
をマップする
マップを保存します。
応答メッセージの場合は、vPrev SQL アダプターを使用して生成されたスキーマを、WCF ベースの SQL アダプターを使用して生成されたスキーマにマップします。
BizTalk マッパーを BizTalk プロジェクトに追加します。 BizTalk プロジェクトを右クリックし、[ 追加] をポイントして、[ 新しい項目] をクリックします。
[ 新しい項目の追加 ] ダイアログ ボックスの左側のウィンドウで、[ マップ ファイル] を選択します。 右側のウィンドウで、[ マップ] を選択します。 ResponseMap.btm などのマップの名前を指定し、[追加] をクリックします。
[ソース スキーマ] ウィンドウで、[ オープン ソース スキーマ] をクリックします。
[BizTalk 型選択] ダイアログ ボックスで、プロジェクト名を展開し、[スキーマ] を展開して、WCF ベースの SQL アダプターの応答メッセージのスキーマを選択します。 このチュートリアルでは、 New_Migration.TableOperation.dbo.Customer を選択し、[OK] をクリック します。
[ ソース スキーマのルート ノード ] ダイアログ ボックスで、[ InsertResponse] を選択し、[OK] をクリック します。
[宛先スキーマ] ウィンドウで、[ 宛先スキーマを開く] をクリックします。
[BizTalk 型選択] ダイアログ ボックスで、プロジェクト名を展開し、[スキーマ] を展開して、vPrev SQL アダプターの応答メッセージのスキーマを選択します。 このチュートリアルでは、 New_Migration.InsertCustomerService を選択し、[OK] をクリック します。
[ ターゲット スキーマのルート ノード ] ダイアログ ボックスで、[ InsertResponse] を選択し、[OK] をクリック します。
2 つのアダプターによって生成される応答スキーマの違いがいくつかあります。 これらの違いは、次のように説明できます。
WCF ベースの SQL アダプターを使用して、主キー (および ID フィールド) を含むテーブルにレコードを挿入すると、挿入操作の応答は、挿入された行の ID フィールドの値を返します。 そのため、WCF ベースの SQL アダプターに準拠する応答メッセージのスキーマには、追加の InsertResult 要素が含まれています。 この要素には配列が含まれ、挿入された行の ID フィールドが格納されます。
vPrev SQL アダプターを使用して、テーブルにレコードを挿入すると、アダプターは応答メッセージの一部として空の "Success" 要素のみを返します。
そのため、スキーマは、ID フィールドの値を含む WCF ベースの SQL アダプターからの応答が、vPrev SQL アダプターからの応答メッセージの一部である "Success" 要素の一部として "コピー" されるようにマップされます。 一括コピー Functoid を使用して、あるスキーマから別のスキーマに要素をコピーできます。
マス コピー Functoid を使用するには、[ ツールボックス] から [マス コピー] Functoid をドラッグし、マッパー グリッドにドロップします。 ソース スキーマの InsertResult 要素を Functoid に接続します。 同様に、変換先スキーマの Success 要素を Functoid に接続します。 次の図は、Functoid を介して 2 つの要素がどのようにマップされるかを示しています。
をマップする
注
マス コピー Functoid の詳細については、「 一括コピー Functoid」を参照してください。
マップを保存します。
BizTalk ソリューションを保存してビルドします。 ソリューションを右クリックし、[ソリューションの ビルド] をクリックします。
ソリューションをデプロイします。 ソリューションを右クリックし、[ソリューションの デプロイ] をクリックします。
次のステップ
「 手順 2: SQL アダプターを使用して BizTalk Server 管理コンソールでオーケストレーションを構成する」の説明に従って、WCF カスタム送信ポートを作成し、この手順で作成したマップを使用するように構成します。