dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce]削除済みのレコードをSOQLで取得する

ずいぶん前に調べて解決したんだけど、まとめてなかったのでメモ。
削除したレコードを、開発者コンソールのクエリエディタ(Query Editor)でさっと確認したかった。のですが。。。

いきなり結論

やり方は

  1. ALL ROWSキーワードをつけた SOQL を使う
  2. ALL ROWSは開発者コンソールのクエリエディタでは使用できないので諦める
  3. 削除されたレコードだけ、というWHERE条件は IsDeleted フラグを使う
    (同様に、アーカイブされたレコードについては IsArchived フラグを使う)

ALL ROWS で削除済みレコードを取得できる

Salesforce Developers

上記リンクにあるように、削除済みまたはアーカイブ済みのレコードも含めて SELECT で取得するには ALL ROWS というキーワードを使います。

ただし、このキーワードは Apex でのみ有効であり、開発者コンソールでは使えないようです。

(参考: Question about "ALL ROWS" in SOQL - Salesforce Developer Community)

f:id:dackdive:20141205164043p:plain

サンプルコード

開発者コンソールなどで実行できます。

リファレンス