Knowledge Article Number 000312746
#次の動作は、レコードに添付されたファイルの削除に適用されます。
・Classicでは、Salesforceは関連するContentDocumentLinkレコードのみを削除し、ContentDocumentレコードは削除しないため、ContentDocumentトリガーは起動しません。
・Lightning Experienceでは、ContentDocumentと関連するContentDocumentLinkレコードの両方が削除されます。仕様上、SalesforceはContentDocumentLinkのトリガーではなく、ContentDocumentのトリガーのみを起動します。
#これは設計どおりに機能しており、以下の手順に従って確認できます。
- 2つの「削除前」トリガーを作成します。1つはContentDocumentに、もう1つはContenDocumentLinkオブジェクトに作成します。
- デバッグログで確認できる「system.debug」ステートメントをそれぞれに配置します。
- 次に、「ファイル」関連リストの下の任意のオブジェクトレコードに2つのファイルをアップロードします。完了すると、[ファイル]タブで両方のアップロードされたドキュメントを確認できます。
- 開発者コンソールで以下のクエリを実行します。
2つのレコードが返されます
2つのレコードが返されます
- デバッグログを設定する
- CLASSIC:
[ファイル]関連リストの下にあるドキュメントの横にある[削除]リンクをクリックして、アップロードしたファイルの1つを削除します。
観察:- デバッグログでは、ContentDocumentLinkTriggerのみが発生し、そのトリガーに存在するDebugステートメントが表示されることがわかります。
- 削除したドキュメントは、[ファイル]タブに表示されます。
- 上記の2つのクエリを実行すると、最初のクエリでは1行、2番目のクエリでは2行のみが返されることがわかります。つまり、ContentDocumentLinkのみが削除されます。
- LIGHTNING:
オブジェクトレコードを開き、[ファイル]関連リストの下のドキュメントの横にある[削除]リンクをクリックして、2番目にアップロードされたファイルを削除します。
観察:- デバッグログでは、ContentDocumentTriggerのみが発生し、そのトリガーに存在するDebugステートメントが表示されることがわかります。
- 削除したドキュメントは、[ファイル]タブで使用できなくなります
- 上記の2つのクエリを実行すると、最初のクエリに対して行が返されず、2番目のクエリ(1番目のドキュメントに関連するクエリ)に対して1行が返されないことがわかります。つまり、ContentDocumentとContentDocumentLinkの両方が削除されています。