Contenu connexe
Plus de furuCRM株式会社 CEO/Dreamforce Vietnam Founder (20)
Lock attachfilewhileparentrecordlocked
- 6. z
3. 承認申請中ファイルロック不可への対策案
No 防ぐ対象アクション 対策
1 ファイルをアップロード ContentDocumentのBeforeUpdateトリガーにて親レコードの
ロック状態により新規ファイルの添付を防ぐ
2 新しいバージョンをアップロード ContentDocumentのBeforeUpdateトリガーにて親レコードの
ロック状態によりファイルの書き換えを防ぐ
3 ファイルの詳細を編集 ContentDocumentLinkのBeforeUpdateトリガーにて親レコード
のロック状態により添付ファイルの詳細情報更新を防ぐ
4 削除 ContentDocumentのBeforeDeleteトリガーにて親レコードの
ロック状態により添付ファイルの削除を防ぐ
5 レコードから削除 ContentDocumentLinkのBeforeDeleteトリガーにて親レコード
のロック状態によりレコードから添付ファイルの削除を防ぐ
- 7. z
4. ソースコード
//セールスフォースのベストプラクティスによりトリガーハンドラーを書いてね!
trigger ContentDocumentTrigger on ContentDocument (before update,before delete) {
if(Trigger.isUpdate ){
for(ContentDocumentLink link:[SELECT Id,ContentDocument.title,ContentDocumentId,ShareType,
LinkedEntity.Name
FROM ContentDocumentLink where ContentDocumentId=: Trigger.newMap.keySet()]){
if(Approval.isLocked(link.LinkedEntityId)){
System.debug(‘新規ファイルの添付又はファイルの書き換え又はファイル削除がダメ’);
trigger.newMap.get(link.ContentDocumentId).addError(‘新規ファイルの添付又はファイルの書
き換え又はファイル削除がダメ'');
}
}
}
if(Trigger.isDelete){
for(ContentDocumentLink link:[SELECT Id,ContentDocument.title,ContentDocumentId,ShareType,
LinkedEntity.Name
FROM ContentDocumentLink where ContentDocumentId=: Trigger.oldMap.keySet()]){
if(Approval.isLocked(link.LinkedEntityId)){
System.debug(‘添付ファイルの削除がダメ');
trigger.oldMap.get(link.ContentDocumentId).addError('添付ファイルの削除がダメ');
}
}
}
}
- 8. z
4. ソースコード
//セールスフォースのベストプラクティスによりトリガーハンドラーを書いてね!
trigger ContentDocumentLinkTrigger on ContentDocumentLink (before update, before delete) {
if(Trigger.isUpdate ){
for(ContentDocumentLink rNew : trigger.new)
{
if(Approval.isLocked(rNew.LinkedEntityId)){
System.debug(‘添付ファイルの詳細情報更新がダメ');
rNew.addError('添付ファイルの詳細情報更新がダメ');
}
}
}
if(Trigger.isDelete ){
for(ContentDocumentLink rOld : trigger.old)
{
if(Approval.isLocked(rOld.LinkedEntityId)){
System.debug(‘レコードから添付ファイルの削除がダメ');
rOld.addError('レコードから添付ファイルの削除がダメ');
}
}
}
}