
Salesforceで新しいフローを作成したとき、「このフローを既存の全レコードに一括で適用したい…!」と思ったことはありませんか?
例えば、「取引先が作成・更新されたら、関連する商談の特定の項目を自動で更新する」というフローを作ったとします。このフローは、これから作成・更新されるレコードには有効ですが、すでに存在するレコードには適用されません。
一件ずつ手動で更新するのは現実的ではありませんよね。
そんな時に役立つのが、**データローダーを使った「空更新」**です。この記事では、Salesforceの標準ツール「データローダー」を使い、既存のレコード情報は何一つ変更せずに、レコードの更新処理だけを実行してフローを発動させるテクニックを分かりやすく解説します。
「空更新」とは?
空更新とは、レコードの項目値を実際には変更せず、Salesforceに「このレコードが更新された」と認識させる操作のことです。
具体的には、データローダーを使って、更新対象レコードのIDのみを指定して一括更新(Update)をかけます。ID以外の項目を指定しないため、データ内容は変わりません。しかし、Salesforce上では更新イベントが発生するため、それをトリガーとするフローやプロセスビルダーなどを起動させることができるのです。
この方法を使えば、何千、何万件という既存レコードに対しても、一度の操作で新しいフローを一括適用できます。
準備するもの
- データローダー: まだインストールしていない場合は、Salesforce組織の [設定] > [インテグレーション] > [データローダ] からダウンロードしてください。
- 更新対象レコードのID
空更新の方法
それでは、具体的な手順を見ていきましょう。今回は例として、「取引先」オブジェクトの既存レコードすべてに新しいフローを適用するケースを想定します。
Step 1: 更新用CSVファイルの準備
まずは、空更新をかけたいレコードのIDリストが記載されたCSVファイルを用意します。
- データローダーを起動し、「Export」を選択します。
- ログイン後、対象のオブジェクト(例:Account)を選択します。
- ファイルの保存先を指定し、「Next」をクリックします。
- 抽出する項目を選択する画面で、「Id」のみにチェックを入れます。そして、SOQLクエリの「Finish」ボタンをクリックします。
- ポイント: ここで「Id」だけを選ぶのが重要です!もし特定の条件で絞り込みたい場合は、
WHERE
句で条件を指定することも可能です。(例:SELECT Id FROM Account WHERE IsActive__c = true
)
- ポイント: ここで「Id」だけを選ぶのが重要です!もし特定の条件で絞り込みたい場合は、
- エクスポートが完了すると、成功・失敗ログの確認画面が表示されます。「OK」をクリックして閉じます。
これで、指定したオブジェクトの全レコードのIDが記載されたCSVファイルが作成されました。
Step 2: データローダーで一括更新(Update)
次に、Step 1で作成したIDリストのCSVファイルを使い、一括更新を実行します。
- データローダーのホーム画面に戻り、「Update」を選択します。
- 対象オブジェクト(例:Account)を選択し、先ほどエクスポートしたIDのみが記載されたCSVファイルを指定します。
- 「Next」をクリックすると、CSVファイルの行数が表示されるので確認して「OK」をクリックします。
- 次の画面では、CSVの項目とSalesforceの項目をマッピングします。「Create or Edit a Map」をクリックし、CSVの「ID」列とSalesforceの「ID」項目をドラッグ&ドロップで紐付けます。
- マッピングが完了したら「OK」→「Next」と進みます。
- 最後に、成功ファイルとエラーファイルの保存先ディレクトリを指定し、「Finish」をクリックして処理を開始します。
これで更新処理が実行されます。レコードの件数によっては少し時間がかかりますが、完了するまで待ちましょう。
Step 3: 結果の確認
処理が完了したら、必ず結果を確認しましょう。
- Success/Errorファイルの確認: データローダーの完了ダイアログに表示される成功件数とエラー件数を確認します。もしエラーがあれば、Errorファイルを開いて原因を調査し、対象レコードを修正して再度実行してください。
- Salesforce上の確認: Salesforceの画面で、いくつかのレコードをランダムにピックアップし、フローが意図通りに実行されているか(項目が更新されているか、関連レコードが作成されているかなど)を確認します。
空更新を実行する上での注意点
この方法は非常に便利ですが、いくつか注意点があります。必ず事前に確認してください。
- 事前にSandboxでテストする: いきなり本番環境で実行するのは非常に危険です。必ず事前にSandbox環境でテストを行い、意図しない動作が起きないか、フローが正しく実行されるかを確認してください。
- 他の自動化プロセスに注意: レコード更新をトリガーとするのは、今回動かしたいフローだけとは限りません。他のワークフロールール、入力規則、Apexトリガーなどが意図せず動いてしまわないか、事前に影響範囲をしっかり調査しましょう。
- データのバックアップ: 万が一の事態に備え、空更新を実行する前には、必ず対象オブジェクトのデータをエクスポートしてバックアップを取っておきましょう。
まとめ
データローダーを使った「空更新」は、新規作成したフローを既存レコードへ一括適用するための強力なテクニックです。手順自体はとてもシンプルですが、本番環境のデータに一括で変更を加える操作のため、事前のテストと影響調査が不可欠です。
この記事を参考に、安全かつ効率的にSalesforceの運用を行ってみてください!