活動のアーカイブについて

今回はデータ移行の時などに関係してくる活動(行動&ToDo)のアーカイブ機能について書きたいと思います。活動のアーカイブとはSaleforceが標準で用意している機能で、期日から一年以上経過した過去の活動を自動でアーカイブしてくれます。
活動は次の条件に従ってアーカイブされる仕組みになっています。

  • ・ 期日からの経過日数が 365 日を上回る行動
  • ・ 期日からの経過日数が 365 日を上回る完了した ToDo
  • ・ 作成日からの経過日数が 365 日を超える、期日のない完了した ToDo


活動がアーカイブされると次のように扱われます。

  • ・ アーカイブ済みの ToDo はレポートに表示されない
  • ・ Sandbox を作成または更新したときに、アーカイブ済みの活動はコピーされない
  • ・ データローダ使用時に通常のExportでは取得されない


アーカイブされる活動は期日から一年以上経過した過去の活動なのでレポートに表示されなかったり、Sandboxにコピーされないというのは特に問題ないと思います。 気をつけなければならないのがデータ移行のときなどですべての活動を取得したいときに、単純にデータローダのExportを実行した場合には取得できず、取得するには工夫が必要になることです。


通常Export・動作検証

アーカイブ済みの活動をExportするとどうなるか実際に試してみます。 組織に行動が10件存在している状態で検証していきます。 この10件の行動はすべてアーカイブ済みの活動となっています。

アーカイブ済みの活動は活動履歴関連リストからも普段通り参照できます。

データローダのExport機能で次のクエリを実行します。 WHEREを指定していないので全件取得される想定です。

結果は1件も取得できませんでした。

ディスク使用量で表示された10件の活動はすべてアーカイブ済みだったため取得件数が0件となりました。このようにデータローダのExportではアーカイブ済みの活動を取得することができません。
これですごく困っていたときに、この問題を解決する方法があることを教えてもらいました。アーカイブ済みの活動を取得したい場合はデータローダのExport All機能を利用することで対応できるとのことです。


Export All・動作検証

Export Allでアーカイブ済みの活動も取得できるか確認してみます。 行動の件数は先程と同じ条件で10件存在しています。 Export AllはデータローダのExportボタンの右側に表示されています。

先程と同じクエリを実行してみます。

これで13件取得できました。

想定の10件より3件多く取得されましたが、これは削除済みのレコードが含まれているためです。 通常のExportでは削除済みレコードは取得されないようになっていますが、Export Allの場合は取得できてしまいます。

ISDELETED項目がTrueになっているものが削除済みの活動です。今回は3件存在していたため想定10件より3件多い13件が取得されました。また、ISARCHIVED項目でアーカイブ済みの活動かを判断できます。今回取得した活動はすべてアーカイブ済みだったため、Trueが登録されています。

アーカイブ済みの活動を取得したくて、削除済みの活動は取得したくない場合は、次のようにISDELETEDを取得条件に追加することで対応できます。

Select Id FROM Event WHERE IsDeleted = False

このようにアーカイブ済みの活動を取得したい場合はExport Allで対応可能です。

アーカイブされた活動も他の活動と同じように活動関連リストから参照できて、ディスク使用量の件数にも反映されているので、普段アーカイブされているかはあまり意識することが無いと思います。ただ、アーカイブされると上記のようなルールが反映されるので、こういう仕組みがあることを覚えておくと過去の活動レコードを扱う場合に役に立つと思います。