ここまでで、Salesforce にクエリを送信して応答を受信するオーケストレーションを構築しました。 このセクションでは、オンプレミスの SQL Server データベース Orders の OrderDetails テーブルに Salesforce からの応答を挿入するようにオーケストレーションを更新 します。 これを実現するために、次の広範な手順を実行します。
オンプレミスの 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 プロジェクト内で使用できる「Consume Adapter Service」アドインが提供され、OrderDetails テーブルへの挿入操作のスキーマを生成することができます。 このセクションでは、メッセージ スキーマを作成する手順について説明します。
挿入操作のスキーマを作成するには
BtsSalesforceIntegration プロジェクトを右クリックし、[追加] をポイントし、[生成された項目の追加] をクリックします。 [ 生成された項目の追加 ] ダイアログ ボックスで、[ アダプター サービスの使用] をクリックし、[ 追加] をクリックします。
[アダプター サービスアドインの使用] で、[バインドの選択] ドロップダウンから [ sqlBinding] をクリックし、[ 構成] をクリックします。
[ アダプターの構成 ] ダイアログ ボックスの [ セキュリティ ] タブの [クライアント資格情報の種類] で、Windows 認証を使用して SQL Server データベースに接続する Windows を選択します。
[ アダプターの構成 ] ダイアログ ボックスの [ URI プロパティ ] タブの [初期カタログ ] で、接続先のデータベース名 (Orders) を指定します。 [サーバー] には、接続先の SQL Server がインストールされているコンピューター名を指定します。 SQL Server データベースが BizTalk Server プロジェクトと同じコンピューター上にある場合は、ピリオド (.) を入力するだけで済みます。 OK をクリックします。
[アダプター サービスの使用] アドインで、[ 接続] をクリックします。 接続が確立されたら、コントラクトの種類として クライアント (送信操作) を選択します。 [ カテゴリの選択 ] ボックスで、[ テーブル] を展開し、[ 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 リンクの間に Looping 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 図形の後に、送信図形を追加します。 図形に
SendOrders
名前を付け、メッセージの種類を InsertOrders に設定します。Salesforce に注文の詳細を挿入するポートを追加します。 ポート構成ウィザードで、次のオプションを選択します。
ポート名を
SendToSQL
として指定します。新しいポートの種類を作成するオプションを選択します。
通信パターンを一方向に設定します。
[ポートの通信方向] を [このポートで常にメッセージを送信する] に設定し、[ポート バインド] を [後で指定] に設定します。
ポートの 要求 操作を SendOrders Send 図形に接続してオーケストレーションを完了します。 次のスクリーンショットは、完成したオーケストレーションをエンドツーエンドで示しています。
プロジェクトに厳密な名前キー ファイルを追加し、変更をプロジェクトに保存します。
このトピックの手順では、オーケストレーションを完了し、Salesforce から営業案件の通知を受け取り、営業案件の詳細を Salesforce に照会し、クエリ応答を SQL Server データベースに挿入します。 以降のトピックでは、Salesforce で認証し、BizTalk Server 内で Salesforce 応答を処理するために使用される、ソリューションの他の主要なコンポーネントをいくつか構築します。