プログラマ38の日記

主にプログラムメモです。

Salesforce:Trigger.isDelete での before と after の違いではまったこと

今さらですが、Deleteトリガでの before と after の違いではまりました。

 

はまったこと

f:id:crmprogrammer38:20200525071847p:plain

f:id:crmprogrammer38:20200525072216p:plain

上記のように、オブジェクトBはオブジェクトAを参照しています。
オブジェクトBのオブジェクトAへの参照関係項目の「参照レコードが削除された場合の対処方法」は”この項目の値をクリアします。”としています。

この時にオブジェクトAを削除した時のDeleteトリガのbefore , after の違いで次でした。

before delete : オブジェクトBのオブジェクトAへの参照関係項目の値はセットされている

after delete:オブジェクトBのオブジェクトAへの参照関係項目の値がクリアされている。


なので、オブジェクトBの参照関係項目を使ってオブジェクトAが削除された時に関連するオブジェクトBも削除する場合、 before delete でオブジェクトBを検索して削除する必要がありました。

 

次のトリガの実行の順序は理解していてつもりですが、関連オブジェクトの参照関係項目の値のクリアについては正しく理解できていませんでした。

developer.salesforce.com