0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

オブジェクト「コンテンツドキュメントリンク」が削除された際Apexトリガーが呼び出されないという事象

Posted at

リファレンスを見ると削除トリガーはあるみたいです。

ただし、気になるのは太字の部分です。連続の削除では機能しないのかもしれません。
1件だけ削除したらトリガーされるか確かめてみてはどうでしょうか?

ContentDocumentLink オブジェクトでは、挿入、更新、削除操作の前後のトリガーがサポートされます。ContentDocumentLink トリガーは、ContentDocumentLink に追加や削除があるたびに実行されます。ファイルが削除されると、ContentDocument の削除トリガーが実行されますが、カスケードされた ContentDocumentLink の削除では ContentDocumentLink トリガーは実行されません。

https://developer.salesforce.com/docs/atlas.ja-jp.object_reference.meta/object_reference/sforce_api_objects_contentdocumentlink.htm

確認したところ、1件だけ削除の場合はトリガーされる可能性があります。

現在この事象が発生しているのは、ナレッジの記事に添付したファイルを削除する際です。

添付いたしました画像のように削除の方法が2種類あり、「レコードから削除」の場合は、削除トリガーが機能します。しかし「削除」となると機能しません。

組織にファイルをアップロードし、ナレッジ記事に添付すると、コンテンツドキュメントリンクレコードは2件作成されるようです(LinkedEntityIdがファイルをアップロードしたユーザーId版とファイルが添付されているナレッジのId版)。

「レコードから削除」の際は、LinkedEntityIdがナレッジのIdであるレコードのみが削除されますが、「削除」の場合はコンテンツドキュメントリンクレコードが2件とも削除されていました。

”カスケードされた ContentDocumentLink の削除”が、「1回の操作(今回は「削除」を選択する)で2件のコンテンツドキュメントリンクが削除される」と同義ならば、削除トリガーは機能しない仕様だということですね。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?