Salesforceでのデータ移行とUpsertの実践方法
はじめに
Salesforce へのデータ移行やシステム連携を設計していると、技術的な壁にぶつかることがあります。 「重複を防ぎたい」「親子関係を維持したい」「外部IDをどう設計する?」—— これらは、Salesforce導入時の定番課題です。
私たちがExcelTLを設計する中でも、性能やUXと同じくらい、「いかに他ツールでは解決できなかった課題をスマートに処理するか?」という点を重視しました。 この記事では、Salesforceでのデータ移行をよりシンプルにするための実践的アプローチと、 ExcelTLが提供する解決策を紹介します。
データ移行とインテグレーションの課題
他システムから Salesforce へのデータ移行やインテグレーション時、特に悩ましいのが以下のような問題です。
① 重複レコードの作成を防ぐ方法
同じデータを何度もアップロードしてしまい、重複するレコードが作成されるのを避ける方法。
② 親子関係の維持
Relational Database ではプライマリーキーや外部キーを使って親子関係を管理しますが、 Salesforceではこれらの概念が直接的には存在しないため、どのように親子関係を維持するか。
③ 外部ID項目の設計
Salesforceでは外部IDを使ってデータを一意に識別しますが、これを正しく設定する手間がかかります。
従来のSalesforceデータ移行のやり方
従来、Salesforceでデータを移行する際には、以下のような方法が使われていました。
1. 外部ID項目を使った重複回避
Salesforceでは、外部ID項目を活用して、同一データの重複作成を防ぎます。具体的には、次のように進めます。
- 各オブジェクトに外部ID項目を作成します。
- レコードの識別キーとしてコードや属性(例:取引先IDや顧客番号)を設定します。
- Upsert(挿入または更新)を使用して、既存のデータがあれば更新、なければ新規で挿入します。
2. 親子関係の維持
Salesforceでは、親オブジェクトと子オブジェクトを関連付ける際に、親IDを使って手動で親レコードを特定し、 子レコードにリンクします。しかし、リレーショナルデータベース(RDB)にあるような外部キーの概念がそのまま使えないため、 少し工夫が必要です。
3. 外部ID項目の設計と運用
データ移行時、外部ID項目を使ってレコードの識別を行うため、Salesforce側でそれらの項目を設計する必要があります。 これには手間がかかり、特に複数のオブジェクト間で外部ID項目を一致させるのが大変です。
ExcelTLがもたらすシンプルな解決策
ExcelTLは、この「複雑さ」を徹底的に減らすために設計されました。 Excel上でジョブを定義しながら、SalesforceへのUpsertや親子関係維持をノーコードで実現できます。
✅ 自由な識別ID設計
外部IDをSalesforce側で事前に用意する必要はありません。 ExcelTLのジョブ定義で、任意の識別キーを作成できます。 たとえば、取引先責任者(Contact)のレコードを「FirstName + LastName」で識別する、といった柔軟な設定も可能です。
✅ 親子関係を自動的に維持
ExcelTLでは、親子レコードの関係を外部IDなしで自動リンク。 親のSalesforce IDを知らなくても、識別キーを通じて安全に紐付けが行えます。 これにより、複数回のジョブ実行でも重複やリンク崩れが発生しません。
ExcelTLによるUpsert処理
ExcelTLの特徴的な点は、外部ID項目を使用せずに、自由に識別IDを設定し、 Upsertを使ってデータを簡単に移行できることです。ジョブ定義時に、以下のように識別IDを設定できます。
- 単一属性で識別: 例:AccountNumber(取引先番号)を識別IDとして使用する。
- 複数属性の組み合わせで識別: 例:取引先責任者(Contact)の識別IDを FirstName + LastName といった複数属性を組み合わせて定義することができます。
これにより、同じデータが何度もジョブに流れ込んでも、 重複レコードの作成を防ぎつつ、安全にデータを移行することができます。
実践デモ:外部IDなしで安全にUpsert
実際にExcelTLを使って、取引先責任者の代表キーを FirstName + LastName として設定したデモを紹介します。 このように、親子関係を外部IDなしでうまく維持し、何度データを流しても同一データの重複を防ぐことができます。
まとめ
Salesforceのデータ移行で避けて通れない以下の課題:
- 外部ID管理の手間
- 親子関係の維持
- 重複レコード問題
これらを、ExcelTLはシンプルに解決します。 自由な識別キー設定とノーコードのUpsert実行により、 これまで煩雑だったデータ移行作業が安全・高速・再現性高く行えるようになります。
次回は、より複雑なデータ構造を安全に移行するためのテクニックを紹介します。お楽しみに。