<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KWSW7ZQ" height="0" width="0" style="display:none;visibility:hidden">

ごみ箱から消しても消えてない? Salesforceのレコード削除

 2020.01.31 customer_success

こんにちは。Salesforce運用支援サービス「Customer Service for Salesforce – Remote Service- (旧AGORA) 」のサポート担当 Inoです。

Winter‘20からLightningExperience画面でも「ごみ箱」にアクセスできるようになりました。これで削除も便利に…と思いつつも、Salesforceの「削除」にはちょっと気をつけないといけない事があるのを思い出しました。

以前、ドハマリしたので、皆さまが 私のような苦労をしないように、こちらで紹介させて頂きますね!

3つの削除

〈ここ大事!〉
 ごみ箱
 ごみ集積所(削除待ち)
● ごみ収集車(削除)

Salesforceのレコードを画面上の「ごみ箱」に入れて、ごみ箱画面上の「削除」をクリック。
完全削除されました」とメッセージが表示され、ごみ箱画面から消えますよね?

でも、実際には消えていないのがSalesforceの 削除 のしくみなのです。

図1

実際に消えるのは、Salesforceのサーバー上で物理削除の内部処理が行われた時です。

画面上のごみ箱から削除すると、データは『ごみ集積場(ごみ回収待ち状態)』に。
実際にデータが無くなる(物理削除される)のは、ごみ回収車が来たタイミング、と考えれば分かりやすいと思います。

図2図3

[参考] salesforceナレッジ記事:ごみ箱内のレコードと物理削除待ちレコードの違いについて

 

何が問題?

削除しても削除待ちになるだけで消えていないのは分かった。
ごみ箱画面から消えてて、詳細画面にも見えてないなら、問題ないんじゃ? と思われるかもしれません。

でも、データローダで『すべてのデータをエクスポート』したり、「ごみ箱」のデータをエクスポートしたら『ごみ集積場(ごみ回収待ち状態)のデータ』もエクスポートできてしまいます。また、SOQLで ” ALL ROWS ” と記述すると、削除待ちのゴミデータも抽出結果に含まれてしまいます。

図4

削除待ちレコードの落とし穴

〈ここ大事!〉
 削除数に上限があり、不定期
● 増えていく削除待ちレコード

 

『ごみ集積場(ごみ回収待ち状態)』からSalesforceが行う物理削除の内部処理には、件数とタイミングの制約があります。

削除待ちのすべてのレコードを全部削除するのではなく、削除件数に上限があるのです。また、いつ、どのくらいの頻度で実行されるのかといったタイミングも不定期です。(公表されていません。)つまり、削除件数の上限を越えたレコードは、次の削除処理まで残ることになります。

(週に1回、××万レコードを削除 とも言われていますが、あくまでウワサです... 。)

頻繁に大量のレコードを削除するような利用方法の場合、削除されないレコードが毎週ジワジワどんどん溜まっていきます。そのうち、生きているレコードより削除待ちレコードが多くなる、なんて事が起こる場合もあります。

図6

削除待ちレコードの影響

〈ここ大事!〉
  リストビューやレポート、SOQLのレスポンスに影響

デベロッパーが「テンポラリーテーブルを作って、レコードを吐いて消して/吐いて消してって設計にしよ~」なんて、安易に実装すると、『ごみ収集車』が間に合わなかったり、いつまでも回収されないごみが大量に残り続けたりする可能性が高いです。

そうなると、ごみ箱のレコードや『ごみ集積場(ごみ回収待ち状態)』のレコードが、カスタムリストビューやレポート、SOQLの実行時間に影響をおよぼす恐れがあります。

リストビューやレポートの表示が遅くなったり、SOQLが返ってこなかったり・・・

レスポンスが遅いなぁと思っても、Salesforceの『ごみ収集車』の削除処理はすぐに実行されません。過去に私はこの状態にドハマリし、泣きをみました・・・( ;∀;)

『物理削除待ちのレコード』が溜まってパフォーマンス問題が発生したら、セールスフォース社のサポートに泣きついてみるのも...テかもしれませんね(ただし、結果は保証できません('◇')ゞ )

最後に

「もう少し詳しく知りたい!」
「いま、使っている組織環境の場合について相談したい!」
日々の運用で悩むこと、Salesforceのヘルプを見たけれど解決方法が分からないことなど
ちょっとしたことを相談できるサービスがあるといいなと思うことはありませんか?

Customer Service for Salesforce – Remote Service- (旧AGORA) には、Salesforceの解説書「活用ガイド」、有資格者が応対する「問い合わせサービス」など、さまざまなサービスがございます。
詳細はこちらよりご覧ください。

セールスフォースの運用をサポート AGORA