ステップ 3c: SQL Server データベースに営業案件の詳細を挿入する
ここまでに、Salesforce にクエリ要求を送信し、応答を受信するためのオーケストレーションをビルドしました。 このセクションでは、そのオーケストレーションを更新して、Salesforce からの応答をオンプレミスのSQL Server データベース Orders の OrderDetails テーブルに挿入します。 これを達成するには、次のようなさまざまな手順を実行します。
オンプレミスのSQL Server データベースの Orders データベースに OrderDetails テーブルを作成します。
BizTalk アダプター パックで使用できるアダプター サービス アドインを使用して、 OrderDetails テーブルに対する挿入操作のスキーマを生成します。
Salesforce 応答メッセージを、SQL Serverの OrderDetails テーブルに挿入するためのメッセージに変換するマップを作成します。
変換を使用して OrderDetails テーブルに応答メッセージを挿入するようにオーケストレーションを更新します。
SQL Server データベースとテーブルを作成する
データベースとテーブルを作成するには
SQL Server Management Studio を開き、管理者として接続します。
[ データベース ] ノードを右クリックし、[ 新しいデータベース] をクリックします。 データベース名を として
Orders
指定し、その他の詳細を指定して新しいデータベースを作成します。クエリ エディターを開き、次のクエリを実行して、Orders データベースに OrderDetails テーブルを作成します。
USE [Orders] GO /****** Object: Table [dbo].[OrderDetails] Script Date: 07-12-2012 22:15:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[OrderDetails]([ID] [int] IDENTITY(1,1) NOT NULL, [TITLE] [varchar](200) NULL, [ProductName] [varchar](200) NULL, [Quantity] [float] NULL, [Amount] [float] NULL, PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] GO SET ANSI_PADDING OFF GO
[OrderDetails] テーブルで挿入操作を行うスキーマを作成する
BizTalk アダプター パックをインストールすると、BizTalk Server プロジェクト内で使用できるアダプター サービス アドインを使用して、OrderDetails テーブルの挿入操作のスキーマを生成できます。 このセクションでは、次のメッセージ スキーマを作成する手順を説明します。
挿入操作を行うスキーマを作成するには
BtsSalesforceIntegration プロジェクトを右クリックし、[追加] をポイントして、[生成された項目の追加] をクリックします。 [ 生成された項目の追加 ] ダイアログ ボックスで、[ アダプター サービスの使用] をクリックし、[ 追加] をクリックします。
[アダプター サービス アドインの使用] の [バインドの選択] ドロップダウンで、[ sqlBinding] をクリックし、[ 構成] をクリックします。
[アダプターの構成] ダイアログ ボックスの [セキュリティ] タブの [クライアント資格情報の種類] で、Windows 認証を使用してデータベースに接続する Windows SQL Server選択します。
[ アダプターの構成 ] ダイアログ ボックスの [ URI のプロパティ ] タブの [ 初期カタログ ] で、接続するデータベース名 (Orders) を指定します。 [サーバー] には、接続先のSQL Serverがインストールされているコンピューター名を指定します。 SQL Server データベースがBizTalk Server プロジェクトと同じコンピューター上にある場合は、ピリオド (.) を入力するだけで済みます。 [OK] をクリックします。
[アダプター サービスアドインの使用] で、[ 接続] をクリックします。 接続が確立されたら、コントラクトの種類として [Client(Outbound operations)]\(クライアント(送信操作)\) を選択します。 [ カテゴリの選択 ] ボックスで、[ テーブル] を展開し、[ OrderDetails テーブル] をクリックし、右側のウィンドウで [ 挿入 ] をクリックし、[ 追加] をクリックします。
生成されたスキーマの前に識別子を付ける場合は、[ ファイル名プレフィックス] を指定します。 このチュートリアルでは、プレフィックスを InsertOrders として指定し、[OK] をクリック します。
プロジェクトには多数のスキーマが追加されます。 OrderDetails テーブルへのメッセージの挿入に使用するスキーマは、InsertOrdersTableOperation.dbo.OrderDetails.xsd です。
Salesforce 応答と挿入スキーマをマップする
スキーマ (Salesforce からの応答と OrderDetails への挿入) の両方が用意されたので、Salesforce からの応答スキーマを OrderDetails の挿入スキーマにマップして、Salesforce からの応答メッセージを SQL Server データベース テーブルに挿入できるようにする必要があります。
スキーマをマップするには
BtsSalesforceIntegration プロジェクトを右クリックし、[追加] をポイントし、[新しい項目] をクリックして、[マップ] をクリックします。 マップ名を として
QueryResult_Orders.btm
指定し、[ 追加] をクリックします。マップ画面で、ソース スキーマの [QueryResult ] を選択し、変換先スキーマとして [InsertOrdersTableOperation.dbo.OrderDetails.xsd ] を選択し、その中で [挿入 ] ノードを選択します。
次のスクリーンショットに示されているように 2 つのスキーマをマップします。
にマップする
マップでは、レコードと OrderDetails リンクの間にループ functoid が使用されていることに注意してください。 これにより、 レコード の下にあるノードの 1 つ以上の出現がすべて 、OrderDetails の下の同様のノードの出現にマップされるようになります。
マップの変更を保存します。
SQL Server にメッセージを挿入するオーケストレーションを更新する
このセクションでは、オーケストレーション内のマップを使用して、Salesforce 応答メッセージを SQL Server のテーブルに注文詳細を挿入するためのメッセージに変換します。 さらに、SQL Server にそのメッセージを送信するためのポートも追加します。
オーケストレーションを更新するには
挿入スキーマのメッセージ変数を作成します。 オーケストレーション ビューで、[ メッセージ ] ノードを右クリックし、[ 新しいメッセージ] をクリックします。 メッセージ名を InsertOrders に、メッセージの種類 を BtsSalesforceIntegration.InsertOrdersTableOperation_dbo_OrderDetails.Insert に設定します。
ReceiveQueryResult 図形の後にメッセージ構築図形を追加します。 図形の名前を に
ConstructOrders
設定し、 Messages Constructed プロパティを InsertOrders に設定します。ConstructOrders 図形内に Transform 図形を追加します。 変換図形をダブルクリックして、[変換の構成] ダイアログ ボックスを開きます。 ダイアログ ボックスで、[ 既存のマップ ] オプションを選択し、ドロップダウンから [BtsSalesforceIntegration.QueryResult_Orders] を選択します。 [ソース] を [QueryResultMsg] に、[宛先] を [InsertOrders] に設定し、[OK] をクリックします。
ConstructOrders 図形の後に、Send 図形を追加します。 図形
SendOrders
に名前を付け、メッセージの種類を InsertOrders に設定します。Salesforce に注文詳細を挿入するためのポートを追加します。 ポート構成ウィザードで、次のオプションを選択します。
ポート名を として
SendToSQL
指定します。新しいポート種類を作成するオプションを選択します。
[通信パターン] を [一方向] に設定します。
[通信のポート方向] を [このポートで常にメッセージを送信します] に設定し、[ポート バインド] を [後で指定] に設定します。
ポートの 要求 操作を SendOrders Send 図形に接続して、オーケストレーションを完了します。 次のスクリーンショットは、完了したオーケストレーションをエンド ツー エンドで示します。
厳密な名前のキー ファイルをプロジェクトに追加し、プロジェクトへの変更を保存します。
このトピックの手順を使用し、Salesforce から営業案件通知を受信し、営業案件に関する詳細について Salesforce にクエリを送信し、クエリ応答を SQL Server データベースに挿入するためのオーケストレーションが完成しました。 次のトピックでは、Salesforce で認証を行い、Salesforce 応答を BizTalk Server で処理するために使用するソリューションのその他の主要なコンポーネントのいくつかをビルドします。