(続)活動を意図的にアーカイブしてテストしたい #salesforce

この前(というか日付的には昨日)、こんな記事を書きました。

jappy.hatenablog.com

「期日が1年以上前の活動を作ったら、そのうちアーカイブされると思ったが、1日待ってもアーカイブされなかった」というのが要旨ですが、改めて確認するとアーカイブされていました

というわけで、改めてわかったことをまとめると、

活動がアーカイブされるには、1日以上かかる。

今回のレコードは、期日が「2016/04/20 15:00」、作成日時が「2017/06/15 10:04」でしたが、アーカイブされたのは 6/17 12:00~6/18 22:20のどこか、なようです。

アーカイブ時刻ってArchivedDateみたいな項目でわかるんでしたっけ…?)

活動がアーカイブされるのに、レコード数は(おそらく)関係ない

今回、DE環境で確認したので、ディスク容量は5.0MBです。

確認時点で使用量は約79%(4.0MB)、そのうち、活動は441件(=882KB)でした。

そんなにキリがよい数字でもないので、レコード数や空き容量はおそらく関係ないのでしょう。

FROM Eventだけだとアーカイブ済みの活動はクエリされない

開発者コンソール上のQuery Editorで FROM Event として活動をクエリしていましたが、アーカイブ済みの活動はクエリ結果として返らないようです。

SOQLで提供されている ALL ROWS というキーワードを使うと、アーカイブ(や削除)済みのレコードもクエリできますが、これはQuery Editor上では使えないようです(なぜでしょうね…?)

Apexからは利用できるみたいなので、Anonymous Windowで実行しました。

List<Event> events = [
  SELECT Id, ActivityDate, IsArchived, Subject FROM Event ORDER BY ActivityDate ASC ALL ROWS    
];

System.debug(events[0]);