読者です 読者をやめる 読者になる 読者になる

dackdive's blog

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

follow us in feedly

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

Salesforce apex

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

いきなり結論

やり方は

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

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

Querying All Records with a SOQL Statement | Force.com Apex Code Developer's Guide | Salesforce Developers

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

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

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

f:id:dackdive:20141205164043p:plain

サンプルコード

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

リファレンス