CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

by 色川穂高 | July 28, 2025 | Last Updated: December 29, 2025

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

こんにちは。CData Software Japan の色川です。

先日リリースされたCData Arc 2025.Q2(25.2)アップデートでは、「B2B 連携をもっとシンプルに」をコンセプトにするArc に相応しく、新コネクタの搭載や主要コネクタの機能強化により「応用的な連携シナリオでも、もっとシンプルに」構成できるように進化しています。

Arc 25.2 でリリースされた数多くのアップデートの中で「応用的な連携シナリオでも、もっとシンプルに」実現する機能強化の1つが、Salesforce コネクタでの「よりシンプルな一括Upsert 設定」です。この記事では、Arc 25.2 でサポートされた「Salesforce コネクタでの、よりシンプルな一括Upsert 設定」についてご紹介します。

CData Arc のUpsert アクションとSalesforce のUpsert API

CData Arc のDatabase Connectors や、Salesforcekintone など多くのApplication Connectors が提供する「Upsert アクション」は「レコード単位に指定したkey で既にデータが存在していれば更新(Update)なければ追加(Insert)の処理を、Arc のコネクタの中で自動的に検索・判断・実行」してくれる利便性の高い機能です。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

このArc のUpsert アクションの基本的な振舞いは、様々な更新シナリオにおいて利便を発揮しますが、Salesforce のようにUpsert API が用意されているSaaS においては、SaaS 側(Salesforce 側)のUpsert API を利用して連携(更新)したいケースも稀に発生します。分かりやすい例としては、一定数以上のデータ件数を扱う場合の実行パフォーマンスやAPI コール数制限への考慮が必要なケースです。まさに「応用的な連携シナリオ」と言えるかと思います。

Arc のSalesforce コネクタでは、従来からCData Salesforce Driver が提供するUpsert 構文をコードモードで指定することで、Salesforce のUpsert API を利用した一括Upsert リクエストのシナリオを実現できていましたが、今回のアップデートにより『コードモードでの複雑なSQL 記述を必要とせず、デザインモードでの「よりシンプルな設定」で一括Upsert リクエストを構成』できるようになりました。

以下では、Arc 25.2 から可能になった「よりシンプルな設定」でSalesforce への一括Upsert リクエストを構成していきます。

なお、この記事では、デザインモードを利用した「よりシンプルな設定」の流れを中心にご紹介しています。Salesforce のUpsert API を利用した一括Upsert リクエストの原理や留意すべきポイントについては、以前に紹介したこちらの記事をあわせてごらんください。

Salesforce コネクタでの、よりシンプルな一括Upsert 設定の流れ

それでは、実際にデザインモードを利用した「よりシンプルな設定」で一括Upsert リクエストを構成していきます。

従来との違いを確認しやすいように、この記事でも『標準オブジェクトの商品(Product2)に外部キーとして「External_key(External_key__c)」の項目を追加構成した状態で、「Name, ProductCode, External_key__c」の項目を指定して一括Upsert を行う場合』を例に設定していきます。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

Salesforce コネクタ - enablebulkupsert プロパティの有効化

Salesforce コネクタの「Upsert アクション」におけるデフォルトの振舞いは、25.2 でも従来と変わらず「レコード単位に指定したkey で既にデータが存在していれば更新(Update)なければ追加(Insert)の振舞い」です。

Upsert アクションにおけるデフォルトの振舞いでなく「デザインモードを利用して一括Upsert リクエストを構成」する場合は、Salesforce コネクタの「高度な設定」にある「その他の設定」で「enablebulkupsert プロパティを明示的に有効化(enablebulkupsert=true)」します。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

これにより、従来はSalesforce コネクタでコードモードを利用して記述が必要だった「一時テーブルへのInsert」と「一時テーブルをソースにしたターゲットテーブル(オブジェクト)へのUpsert」が、Salesforce コネクタの中で自動的に組み立てられ、実行されるようになります。

Salesforce コネクタ - Pseudo Columns フィールドの設定

数多くのSaaS の中でも、Upsert のAPI を提供しているデータソースは比較的限られ、そのリクエスト方法もデータソースにより異なりますが、Salesforce の場合は外部ID 項目を外部キーとして利用します。Arc のSalesforce コネクタが利用しているCData Salesforce driver ではどの項目を外部キーとして利用するかを「ExternalIdColumn」というカラムにフィールドの名前を指定する形で構成します。

この「ExternalIdColumn」は、デフォルトでは表示されない特殊な用途の「擬似カラム」です。この「ExternalIdColumn」を後述のXMLMap コネクタの中でビジュアルマッピングで指定できるよう、Salesforce コネクタの「高度な設定」にある「Pseudo Columns」に「*=*」と指定して「ExternalIdColumn(擬似カラム)をSalesforce コネクタのカラムリストで選択できるように設定」します。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

Salesforce コネクタ - カラムリストの明示的な選択

Arc のUpsert アクションにおけるデフォルトの振舞いで、利便の高いポイントの1つに「カラムリストで更新対象として選択されているカラムに対する値が、空やNull の場合は登録・更新対象から自動的に除外」してくれる点があります。この点があることで「数多くのカラムリスト(プロパティ)を持つオブジェクトに対する更新処理(Upsert アクション)でも、カラムリストを細かく事前に選択しなくても連携された必要なデータのみが登録・更新される」という振舞いが実現されます。

しかし「複数のレコードを一括Upsert リクエスト」する場合、レコードにより空やNull 値を持つカラムが異なる可能性がありますので「一括Upsert リクエストでは、カラムリストで選択したカラムは連携された値の内容に関わらずリクエスト対象に含まれます」、この点はポイントの1つと言えるでしょう。

そのため、カラムリストでは、先ほどの「ExternalIdColumn」を含め、マッピングするカラム(連携対象とするカラム)のみを明示的に選択します。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

ここまでで一括Upsert をリクエストするための、Salesforce コネクタの準備は完了です。

XMLMap コネクタ - カラムマッピングとExternalIdColumn の指定

あとは、XMLMap コネクタで、Salesforce コネクタが期待するカラムリストへマッピングします。ポイントは「ExternalIdColumn」に「外部キーとして利用するカラム名」を指定するところでしょう。この記事では「External_key__c」を指定する形になります。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

これで、一括Upsert をリクエストするための準備は完了です。

一括Upsert リクエスト結果の確認

Upsert アクションにおけるデフォルトの振舞いでなく「デザインモードを利用して一括Upsert リクエストを構成」した場合、挙動としては「Salesforce コネクタの内部的な振舞いの違い」として作用しますので、一括Upsert でリクエストされているかどうかは、Salesforce コネクタのコネクタログで確認することができます。コネクタログを見てみると、一時テーブル(Product2#Temp)にInsert した後、Product2 へUpsert リクエストされていることが確認できます。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

またSalesforce 側でもオブジェクトの更新結果とともに、「API 使用状況」などを利用して期待どおりのリクエスト数(削減)になっているか、などを確認することもできるでしょう。

CData Arc - Salesforce コネクタ - よりシンプルな一括Upsert 設定

まとめ

この記事では、Arc 25.2 でサポートされた「Salesforce コネクタでの、よりシンプルな一括Upsert 設定」についてご紹介しました。

今回のArc 25.2 では「応用的な連携シナリオも、もっとシンプルに」実現できる、数多くのアップデートを実施していますが、Salesforce への一括Upsert 連携のようなシナリオは、まさに「応用的で高度な連携シナリオ」の1つと言えるかと思います。

従来は、コードモードでの「一時テーブルへのInsert」と「一時テーブルをソースにしたターゲットテーブル(オブジェクト)へのUpsert」構文の記述が必要でしたが、今回のアップデートで、よりシンプルな設定で一括Upsert リクエストを構成できるようになったことが確認いただけたかと思います。もちろん、従来の設定方法でも変わらず一括Upsert を構成することはできますので、コードモードを好んでいただいている方は引き続きそちらの設定方法も活用してください。

CData Arc 25.2 では、他にも多くの機能強化・機能改善が施されています。詳しく知りたい方はリリースノートをあわせてごらんください。数多くのアップデートで、より使いやすくなったCData Arc をぜひ試してみてください。
CData Arc - セキュアなデータ連携とマネージドファイル転送(MFT)

今回リリースされた新たなバージョンに限らず、今ご利用されているバージョンについても、設定や利用方法などご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。
CData Software Japan - Support Form


この記事では CData Arc™ 2025 - 25.2.9349.0 を利用しています