CData SSIS Components を使用して SQL Server から Salesforce レコードを新規挿入または既存を更新
SQL Server データベースは、エンタープライズレコードの保存に広く使用されています。このデータを他の場所に移動する必要がある場合がよくあります。CData SSIS Components for Salesforce を使用すると、SQL Server から Salesforce にデータを簡単に転送できます。
この記事では、CData SSIS Components for Salesforce を SQL Server Integration Services ワークフロー内で使用して、SQL Server から Salesforce にデータをエクスポートする方法を説明します。ルックアップコンポーネントを活用して、既存のレコードを検索・更新するか、新しいレコードを挿入します。
Salesforce データ連携について
CData を使用すれば、Salesforce のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:
- カスタムエンティティやフィールドにアクセスでき、Salesforce ユーザーは Salesforce のすべてにアクセスできます。
- アトミックおよびバッチ更新操作を作成できます。
- Salesforce データの読み取り、書き込み、更新、削除ができます。
- SOAP API バージョン 30.0 のサポートにより、最新の Salesforce 機能を活用できます。
- SOQL サポートによる複雑なクエリの Salesforce サーバーへのプッシュダウンにより、パフォーマンスの向上を実現できます。
- SQL ストアドプロシージャを使用して、ジョブの作成・取得・中止・削除、添付ファイルやドキュメントのアップロード・ダウンロードなどのアクションを実行できます。
ユーザーは、Salesforce データを以下と頻繁に統合しています:
- 他の ERP、マーケティングオートメーション、HCM など。
- Power BI、Tableau、Looker などのお気に入りのデータツール。
- データベースやデータウェアハウス。
CData ソリューションが Salesforce とどのように連携するかについての詳細は、Salesforce 統合ページをご覧ください。
はじめに
コンポーネントの追加
まず、新しい OLE DB ソース、CData Salesforce ルックアップ、および 2 つの CData Salesforce デスティネーション(ルックアップで一致した場合と一致しなかった場合をそれぞれ処理)を新しい Data Flow Task に追加します。
OLE DB ソースの設定
以下の手順に従って、SQL Server インスタンスへの接続に必要なプロパティを指定します。
- OLE DB Source を開き、新しい接続を追加します。ここでサーバーとデータベースの情報を入力します。
- Data access mode メニューで「Table or view」を選択し、Salesforce にエクスポートするテーブルまたはビューを選択します。
- OLE DB Source ウィザードを閉じ、CData Salesforce Destination に接続します。
Salesforce 用の新しい Connection Manager を作成
以下の手順に従って、Connection Manager に接続プロパティを保存します。
- 新しい Connection Manager を作成します:Connection Manager ウィンドウで右クリックし、New Connection をクリックします。Add SSIS Connection Manager ダイアログが表示されます。
- Connection Manager type メニューで CData Salesforce Connection Manager を選択します。
- 接続プロパティを設定します。通常、Salesforce 接続には以下が必要です:
- User
- Password
- AccessToken
Salesforce ルックアップの設定
ルックアップコンポーネントの Transform Editor で、SQL Server ソーステーブルから Salesforce ルックアップテーブルへのマッピングを定義します。
- Salesforce ルックアップをダブルクリックして、ルックアップコンポーネントエディタを開きます。
- Connection タブで、先ほど作成した Connection Manager を選択します。
- Connection タブで、Connection Manager を指定(または新規作成)し、データがアップサートされるテーブルを指定します。この例では、Account レコードを転送します。

- Columns タブで、入力カラムの主キーからルックアップカラムの主キーへのマッピングを設定します。

Salesforce デスティネーションの設定
ルックアップコンポーネントを使用すると、データソースのどのエントリが Salesforce に既に存在し、どのエントリが新規であるかがわかります。一致が見つかった場合と見つからなかった場合を処理する 2 つの Salesforce コンポーネントを設定します。
ルックアップ一致デスティネーション
ルックアップコンポーネントが一致を返した場合、Salesforce の既存レコードを更新します。
- Lookup Match Output を Salesforce デスティネーションコンポーネントにマップします。
- Salesforce デスティネーションをダブルクリックして、デスティネーションコンポーネントエディタを開きます。
- Connection Manager タブで、先ほど作成した Connection Manager を選択します。
- 更新するテーブルを指定し、Action を「Update」に設定します。

- Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します(SQL Server の主キーカラムを Salesforce の主キーカラムにマップすることを忘れずに)。

ルックアップ不一致デスティネーション
ルックアップコンポーネントが一致を返さなかった場合、Salesforce に新しいレコードを追加します。
- Lookup No Match Output を Salesforce デスティネーションコンポーネントにマップします。
- Salesforce デスティネーションをダブルクリックして、デスティネーションコンポーネントエディタを開きます。
- Connection Manager タブで、先ほど作成した Connection Manager を選択します。
- 新しいレコードを挿入するテーブルを指定し、Action を「Insert」に設定します。

- Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します。

プロジェクトの実行
これでプロジェクトを実行できます。 SSIS Task の実行が完了すると、SQL テーブルのデータが選択したテーブルにエクスポートされます。