データの一括更新で値を空白にする。間違って作業したときを考えると少し怖いですが、この作業が必要なときもありますよね。
これまで、データローダでしか空白での一括更新はできないと思っていたのですが、インポートウィザードでもいけるらしいとチームメンバーから教えてもらい、また英語のナレッジ記事を発見しましたので共有します。
※必ずバックアップをとって、テストなどを行ってから本番組織で実行してくださいね!
要するに、インポートウィザードでは、
・テキスト項目、選択リスト項目などを空白にしたい → #N/A
・チェックボックス項目の値をアンチェックにしたい → 0(ゼロ)
・参照項目 → インポートウィザードではできない
ということだそうです。
◇ SALESFORCE >HELP >Insert null value in a field with Data Import WizardInsert null value in a field with Data Import Wizard
Description
Data Import Wizard ignores empty cells in a CSV file.
Instead of clearing the value of the field in your organization, it treats the empty field as though you do not want to make any changes to that field.
Resolution
Warning:
Always back up your data before performing any data operation. See Export Backup Data from Salesforce or Export Data for more details. It is recommended to run a test with a small subset of records to ensure the operation was successful through manually opening and verifying that the corresponding records are correct in Salesforce.
To set a field value to null or erase the current value, fill out the column corresponding to the record and field to be updated with #N/A. The exceptions are a checkbox where you have to use 0 for unchecked values and lookup fields as the Import Wizard cannot null a lookup (must use an API tool like the Data Loader).
For example, your CSV file may look like:
ContactID DoNotCall Title
005xxxxxxxxx0Ta 0 #N/A
005xxxxxxxxx1ZT 1 Salesforce Administrator
You may refer to the Bulk API Developer Guide - Valid CSV Record Rows document for more details.
For inserting/updating field with null values using Data Loader, refer to Change record values to blank or null with Data Loader.
↓日本語訳です。
データインポートウィザードで項目にNULL値を挿入する
説明
データインポートウィザードは、CSVファイルの空白のセルを無視します。
空白のセルを、組織内の項目の値をクリアするのではなく、その項目に変更を加えたくないものとして扱います。
解決方法
警告:以下の点にご注意ください。
データ操作を行う前に、必ずデータをバックアップしてください。詳細は、「Salesforce からバックアップデータをエクスポートする」または「データのエクスポート」を参照してください。少数のレコードを使ってテストを行い、Salesforce上でレコードを手動で開いて確認することで、操作が正常に行われたか確認することをお勧めします。
フィールドの値をNULLに設定したり、現在の値を消去したりするには、更新するレコードと項目に対応する列に「#N/A」と記入します。ただし、チェックボックスの場合は、チェックされていない値にするには0を記入する必要があり、参照項目の場合は、インポートウィザードでは参照項目をNULLにすることができないため、例外となります(データローダーなどのAPIツールを使用する必要があります)。
例えば、CSVファイルは以下のようになります。
取引先責任者 ID 電話連絡拒否(チェックボックス) 役職(テキスト)
005xxxxxxxxx0Ta 0 #N/A
005xxxxxxxxx1ZT 1 Salesforce管理者
詳細については、Bulk API 2.0およびBulk API 開発者ガイド-CSVのレコード行の有効な形式 を参照してください。
データローダを使用してnull値を持つ項目を挿入/更新する場合は、データローダを使用してレコードを空白または null で更新する方法を参照してください。
試してみました。
早速、取引先責任者の項目についてインポートウィザードで空白にしてみました。
まずは、選択リスト、テキスト、電話、メール、ロングテキスト型の項目をNullにするようにCSVを作成しました。

いつもはデータローダが多いので、インポートウィザードには一向に慣れません。

無事に処理が完了したようなので

レポートで確認してみます。
こちらがインポートウィザードで更新する前です。

更新後、空白になっています。

補足情報
・データローダで同様に「#N/A」で更新しようとするとエラーになります。
・データローダの場合は「Insert null values」にチェックをいれて実行しますが、[Bulk API を使用] オプションがオンの場合は「Insert null values」が使えないので、代替案として「データインポートウィザード」の場合と同様に項目値「 #N/A 」を使用します。
ひとこと
アドミニストレータの仲間内だと、データローダの使用率が高いためインポートウィザードの仕様をあまり気にすることがないのですが、API参照名で項目を把握するデータローダより、インポートウィザードがいいという方もいらっしゃいますし、取引先と取引先責任者を同時に更新できたり(データローダは1オブジェクトずつ)、リードのキャンペーンに紐づけながらのインポートも比較的簡単にできたりと、インポートウィザードならではの良さもありますよね。
そのうえNULLで更新できることもわかりましたので、何も考えずにデータローダを使ってしまうときもありますが、状況に応じて使い分けていきたいです。
関連記事
インポートウィザードのバッチサイズは変更できません取引先所有者を更新する機能を上手に使い分けましょうdataloader.io でデータを更新するTrailheadをやってみました
{{i18n("articles.view.premium")}}