■親子関係にあるレコードを delete, undelete した時、
どのような挙動になるのかを改めて調査しました
■参照先が削除された場合は項目の値をクリア に設定している場合
子オブジェクトに親オブジェクトの参照項目を作成し、参照項目の「参照レコードが削除された場合の対処方法」の選択を
「この項目の値をクリアします。 この項目を必須にした場合、
このオプションは選択できません。」を選んだ場合の挙動です
以下の操作をします
1.親レコードを作成
2.子レコードを、親レコードを参照するように作成
3.親レコードを削除
4.削除した親レコードを復元
以下の結果になります
3.この時、子レコードの親への参照先項目は、
Salesforce標準のレコード画面では空白になりました
またSOQLでクエリを投げて、レコードの参照先SalesforceIDを確認すると、
参照先SalesforceIDも空白になっていました
4.子レコードの親への参照先項目は復元されていました
※ 3と4の間で、子レコードの親への参照先を別に設定、
保存をすると、4の復元実行後も間で設定した値は保持されていました
ごみ箱削除中に新たに値を設定すると
そちらが優先されるということですね
※ ごみ箱削除中の子レコードの親への参照先項目は空の状態ですが、
インライン編集で空の状態で再保存しても、4の操作でちゃんと
リレーションは復元されました。
■子から参照されている場合は削除できない に設定している場合
子オブジェクトの参照項目の設定で「参照関係に含まれる参照レコードは削除できません。」
を設定している場合の挙動です
以下の操作をします
1.子が親を参照するような、親子レコードを作成
2.子レコードを削除
3.親レコードを削除
4.削除した親レコードを復元
以下の結果になります
2.この操作終了後のごみ箱には、子レコードがあり、
これを復元すると親子関係も保持されます
3.この操作終了後のごみ箱には、親レコードのみが
あり(子レコードは消える)、これを復元すると
親レコードのみ復元されます
子レコードは復元もできなくなりました
※ 開発者コンソールでSOQLでクエリを投げると、
2の操作以後は検索結果に表示されませんでした
2.この操作終了後のごみ箱には、子レコードがあり、
これを復元すると親子関係も保持されます
3.この操作終了後のごみ箱には、親レコードのみが
あり(子レコードは消える)、これを復元すると
親レコードのみ復元されます
子レコードは復元もできなくなりました
※ 開発者コンソールでSOQLでクエリを投げると、
2の操作以後は検索結果に表示されませんでした
0 件のコメント:
コメントを投稿