次の方法で共有


手順 3c: SQL Server データベースに営業案件の詳細を挿入する

ここまでで、Salesforce にクエリを送信して応答を受信するオーケストレーションを構築しました。 このセクションでは、オンプレミスの SQL Server データベース Orders の OrderDetails テーブルに Salesforce からの応答を挿入するようにオーケストレーションを更新 します。 これを実現するために、次の広範な手順を実行します。

  • オンプレミスの SQL Server データベースの Orders データベースに OrderDetails テーブルを作成します。

  • BizTalk アダプター パックで使用できるアダプター サービス アドインを使用して、 OrderDetails テーブルに対する挿入操作のスキーマを生成します。

  • SALESforce 応答メッセージを SQL Server の OrderDetails テーブルに挿入するためのメッセージに変換するマップを作成します。

  • 変換を使用して応答メッセージを OrderDetails テーブルに挿入するようにオーケストレーションを更新します。

SQL Server データベースとテーブルを作成する

データベースとテーブルを作成するには

  1. SQL Server Management Studio を開き、管理者として接続します。

  2. [ データベース ] ノードを右クリックし、[ 新しいデータベース] をクリックします。 Ordersとしてデータベース名を指定し、その他の詳細を指定して新しいデータベースを作成します。

  3. クエリ エディターを開き、次のクエリを実行して、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 テーブルへの挿入操作のスキーマを生成することができます。 このセクションでは、メッセージ スキーマを作成する手順について説明します。

挿入操作のスキーマを作成するには

  1. BtsSalesforceIntegration プロジェクトを右クリックし、[追加] をポイントし、[生成された項目の追加] をクリックします。 [ 生成された項目の追加 ] ダイアログ ボックスで、[ アダプター サービスの使用] をクリックし、[ 追加] をクリックします。

  2. [アダプター サービスアドインの使用] で、[バインドの選択] ドロップダウンから [ sqlBinding] をクリックし、[ 構成] をクリックします。

  3. [ アダプターの構成 ] ダイアログ ボックスの [ セキュリティ ] タブの [クライアント資格情報の種類] で、Windows 認証を使用して SQL Server データベースに接続する Windows を選択します。

  4. [ アダプターの構成 ] ダイアログ ボックスの [ URI プロパティ ] タブの [初期カタログ ] で、接続先のデータベース名 (Orders) を指定します。 [サーバー] には、接続先の SQL Server がインストールされているコンピューター名を指定します。 SQL Server データベースが BizTalk Server プロジェクトと同じコンピューター上にある場合は、ピリオド (.) を入力するだけで済みます。 OK をクリックします。

  5. [アダプター サービスの使用] アドインで、[ 接続] をクリックします。 接続が確立されたら、コントラクトの種類として クライアント (送信操作) を選択します。 [ カテゴリの選択 ] ボックスで、[ テーブル] を展開し、[ OrderDetails テーブル] をクリックし、右側のウィンドウで [ 挿入 ] をクリックし、[ 追加] をクリックします。

  6. 生成されたスキーマの前に識別子を付ける場合は、 ファイル名 プレフィックスを指定します。 このチュートリアルでは、プレフィックスとして InsertOrders を指定し、[ OK] をクリックします。

    多数のスキーマがプロジェクトに追加されます。 OrderDetails テーブルへのメッセージの挿入に使用するスキーマは、InsertOrdersTableOperation.dbo.OrderDetails.xsd です

Salesforce 応答のマップとスキーマの挿入

スキーマ (Salesforce からの応答と OrderDetails への挿入) の両方が用意されたので、Salesforce からの応答スキーマを OrderDetails の挿入スキーマにマップして、Salesforce からの応答メッセージを SQL Server データベース テーブルに挿入できるようにする必要があります。

スキーマをマップするには

  1. BtsSalesforceIntegration プロジェクトを右クリックし、[追加] をポイントし、[新しい項目] をクリックして、[マップ] をクリックします。 マップ名を QueryResult_Orders.btm として指定し、[ 追加] をクリックします。

  2. マップ画面で、ソース スキーマで QueryResult を選択し、宛先スキーマとして InsertOrdersTableOperation.dbo.OrderDetails.xsd を選択し、その中で [挿入 ] ノードを選択します。

  3. 次のスクリーンショットに示すように、2 つのスキーマをマップします。

    Salesforce の応答を「BTS_SF_Map_Response_Insert」という Insert スキーマにマップする

    マップでは、レコードOrderDetails リンクの間に Looping functoid が使用されていることに注意してください。 これにより、レコード の下にある1つ以上のノードの出現がすべて、OrderDetails の下にある同様のノードの出現にマッピングされます。

  4. マップへの変更を保存します。

SQL Server にメッセージを挿入するようにオーケストレーションを更新する

このセクションでは、オーケストレーションのマップを使用して、Salesforce 応答メッセージを SQL Server テーブルに注文の詳細を挿入するためのメッセージに変換します。 また、そのメッセージを SQL Server に送信するポートも追加します。

オーケストレーションを更新するには

  1. 挿入スキーマのメッセージ変数を作成します。 オーケストレーション ビューで、[ メッセージ ] ノードを右クリックし、[ 新しいメッセージ] をクリックします。 メッセージ名を InsertOrders に、メッセージの種類を BtsSalesforceIntegration.InsertOrdersTableOperation_dbo_OrderDetails.Insert に設定します。

  2. ReceiveQueryResult 図形の後にメッセージ構築図形を追加します。 図形の名前を ConstructOrders に設定し、 Messages Constructed プロパティを InsertOrders に設定します。

  3. ConstructOrders 図形内に Transform 図形を追加します。 [変換] 図形をダブルクリックして、[変換の構成] ダイアログ ボックスを開きます。 ダイアログ ボックスで、[ 既存のマップ ] オプションを選択し、ドロップダウンから [BtsSalesforceIntegration.QueryResult_Ordersを選択します。 [ソース][QueryResultMsg]、[宛先][InsertOrders] に設定し、[OK] をクリックします

  4. ConstructOrders 図形の後に、送信図形を追加します。 図形に SendOrders 名前を付け、メッセージの種類を InsertOrders に設定します。

  5. Salesforce に注文の詳細を挿入するポートを追加します。 ポート構成ウィザードで、次のオプションを選択します。

    • ポート名を SendToSQLとして指定します。

    • 新しいポートの種類を作成するオプションを選択します。

    • 通信パターン一方向に設定します。

    • [ポートの通信方向] を [このポートで常にメッセージを送信する] に設定し、[ポート バインド] を [後で指定] に設定します。

      ポートの 要求 操作を SendOrders Send 図形に接続してオーケストレーションを完了します。 次のスクリーンショットは、完成したオーケストレーションをエンドツーエンドで示しています。

      Salesforce 統合の完全オーケストレーション

      プロジェクトに厳密な名前キー ファイルを追加し、変更をプロジェクトに保存します。

    このトピックの手順では、オーケストレーションを完了し、Salesforce から営業案件の通知を受け取り、営業案件の詳細を Salesforce に照会し、クエリ応答を SQL Server データベースに挿入します。 以降のトピックでは、Salesforce で認証し、BizTalk Server 内で Salesforce 応答を処理するために使用される、ソリューションの他の主要なコンポーネントをいくつか構築します。

こちらもご覧ください

手順 3: Visual Studio で BizTalk Server ソリューションを作成する