[Salesforce][Apexコード付き]ファイル添付時にフラグON
お問い合わせ内容
レコードにファイルが添付されているかどうかを知りたい。詳細画面ではなく一覧画面で知りたい。
そんなご要望をいただきました。
今回はApexトリガで実装してみました。
仕組み
レコードに直接ファイルを添付すると、ContentDocumentLinkオブジェクトにファイル(ContentDocument)とレコードのリンク用レコードが登録されます。
また、レコードのフィードかコメントにファイルを添付した場合も同オブジェクトにレコードが登録されますので、Chatter経由のファイル添付でも動作します。
Apexトリガ
以下のコードは行動にファイルを添付された際に、行動のカスタム項目(Attached__c)をONにするコードです。
ファイルが削除された場合は考慮していませんので、厳密に実装するのであればdelete時に添付ファイルが1つも無ければOFFにする処理が必要となります。
テストクラスも必要な方は、コメントください。
trigger ContentDocumentLinkTrigger on ContentDocumentLink (before insert) {
//リンク先のレコードのIDを取得
Set ids = new Set();
for(ContentDocumentLink item : Trigger.new){
ids.add(item.LinkedEntityId);
}
//行動の添付フラグをONにする
List updList = new List();
for(Event item : [SELECT Attached__c FROM Event WHERE Attached__c=FALSE AND ID IN :ids]){
item.Attached__c = TRUE;
updList.add(item);
}
if(!updList.isEmpty()){
update updList;
}
}
本記事は以上です。
お役に立ちましたら、本記事を購入お願いします。
ここから先は
0字
¥ 1,000
この記事が気に入ったらサポートをしてみませんか?