SlideShare uma empresa Scribd logo
z
親レコード承認申請中
添付ファイルロック不可
への対策案
Created By: Kagawa Hoang
Created Date: 2020/08/30
z
Agenda
1. 承認プロセスのロック仕組みについて
2. 承認申請中ファイルロック不可の課題
3. 承認申請中ファイルロック不可への対策案
4. ソースコード
z
1. 承認プロセスのロック仕組みについて
格納先
ContentDocument:ファイ
ル中身を格納
ContentDocumentLink:
ファイルの共有先を格納
子オブジェ
クト
親
承認申請
子オブジェ
クト
ファイル
オブジェク
ト
主従関係 参照関係 参照関係
一般的に申請確定、回付中、
承認済み申請承認対象レ
コードをロックとする
z
2. 承認申請中ファイルロック不可の課題
格納先
ContentDocument:ファイ
ル中身を格納
ContentDocumentLink:
ファイルの共有先を格納
子オブジェ
クト
親
承認申請
子オブジェ
クト
ファイル
オブジェク
ト
主従関係 参照関係 参照関係
①申請承認レコードをロック際に勝手に主従関係子
レコードも親のロック状態を継承される
②参照関係子レコード又は添付ファイル(参照関
係)が親のロック状態を継承しません。(=>Unlock)
z
3. 承認申請中ファイルロック不可への対策案
「添付ファイルの関連リスト」に
て「ファイルをアップロード」を防
ぐ
「添付ファイルのレコードアクション」関連リストにて「新しいバージョンをアップロード」、「ファイルの詳
細を編集」、「削除」、「レコードから削除」を防ぐ
z
3. 承認申請中ファイルロック不可への対策案
No 防ぐ対象アクション 対策
1 ファイルをアップロード ContentDocumentのBeforeUpdateトリガーにて親レコードの
ロック状態により新規ファイルの添付を防ぐ
2 新しいバージョンをアップロード ContentDocumentのBeforeUpdateトリガーにて親レコードの
ロック状態によりファイルの書き換えを防ぐ
3 ファイルの詳細を編集 ContentDocumentLinkのBeforeUpdateトリガーにて親レコード
のロック状態により添付ファイルの詳細情報更新を防ぐ
4 削除 ContentDocumentのBeforeDeleteトリガーにて親レコードの
ロック状態により添付ファイルの削除を防ぐ
5 レコードから削除 ContentDocumentLinkのBeforeDeleteトリガーにて親レコード
のロック状態によりレコードから添付ファイルの削除を防ぐ
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('添付ファイルの削除がダメ');
}
}
}
}
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('レコードから添付ファイルの削除がダメ');
}
}
}
}
z
4. おしまい
Happy Coding!

Mais conteúdo relacionado

Mais procurados

JAWS-UG クラウド専業SIer(CIer)になってみた結果
JAWS-UG クラウド専業SIer(CIer)になってみた結果JAWS-UG クラウド専業SIer(CIer)になってみた結果
JAWS-UG クラウド専業SIer(CIer)になってみた結果Serverworks Co.,Ltd.
 
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレードIT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレードTAKUYA OHTA
 
Eğitim İhtiyaç Analizi
Eğitim İhtiyaç AnaliziEğitim İhtiyaç Analizi
Eğitim İhtiyaç AnaliziYalçın Vural
 
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit GuardIT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit GuardTAKUYA OHTA
 
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdfアプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdfMasahiroMishima1
 
20180918_ops on azure-main
20180918_ops on azure-main20180918_ops on azure-main
20180918_ops on azure-mainJun Misawa
 
IT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration Manager
IT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration ManagerIT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration Manager
IT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration ManagerTAKUYA OHTA
 
自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料
自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料
自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料ssusere30fd8
 
Microsoft Search - Microsoft Graph connector と Search Federation の概要
Microsoft Search - Microsoft Graph connector と Search Federation の概要Microsoft Search - Microsoft Graph connector と Search Federation の概要
Microsoft Search - Microsoft Graph connector と Search Federation の概要Ai Hirano
 
気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップ気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップMasaya Ando
 
ユーザビリティテストの世界「入門編」
ユーザビリティテストの世界「入門編」ユーザビリティテストの世界「入門編」
ユーザビリティテストの世界「入門編」Tarumoto Tetsuya
 
コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~
コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~
コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~崇介 藤井
 
「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論
「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論
「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論Yoshiki Hayama
 
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割Arata Fujimura
 
Microsoft Endpoint Configuration Manager 概要
Microsoft Endpoint Configuration Manager 概要Microsoft Endpoint Configuration Manager 概要
Microsoft Endpoint Configuration Manager 概要Yutaro Tamai
 
NPO / ソーシャルビジネスのためのリーン・スタートアップ入門
NPO / ソーシャルビジネスのためのリーン・スタートアップ入門NPO / ソーシャルビジネスのためのリーン・スタートアップ入門
NPO / ソーシャルビジネスのためのリーン・スタートアップ入門孝弘 笠原
 
UXの考え方とアプローチ
UXの考え方とアプローチUXの考え方とアプローチ
UXの考え方とアプローチMasaya Ando
 
柔軟なプロジェクトデザインのコツ
柔軟なプロジェクトデザインのコツ柔軟なプロジェクトデザインのコツ
柔軟なプロジェクトデザインのコツConcent, Inc.
 

Mais procurados (20)

JAWS-UG クラウド専業SIer(CIer)になってみた結果
JAWS-UG クラウド専業SIer(CIer)になってみた結果JAWS-UG クラウド専業SIer(CIer)になってみた結果
JAWS-UG クラウド専業SIer(CIer)になってみた結果
 
T sunami
T sunamiT sunami
T sunami
 
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレードIT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
 
Eğitim İhtiyaç Analizi
Eğitim İhtiyaç AnaliziEğitim İhtiyaç Analizi
Eğitim İhtiyaç Analizi
 
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit GuardIT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
 
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdfアプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
 
20180918_ops on azure-main
20180918_ops on azure-main20180918_ops on azure-main
20180918_ops on azure-main
 
IT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration Manager
IT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration ManagerIT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration Manager
IT エンジニアのための 流し読み Windows 10 - 入門!System Center Configration Manager
 
自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料
自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料
自己肯定感を向上させる「褒める」行為に着目したSNSの提案_インタラクション2021_発表資料
 
Microsoft Search - Microsoft Graph connector と Search Federation の概要
Microsoft Search - Microsoft Graph connector と Search Federation の概要Microsoft Search - Microsoft Graph connector と Search Federation の概要
Microsoft Search - Microsoft Graph connector と Search Federation の概要
 
Accel series 2022 Spring
Accel series 2022 SpringAccel series 2022 Spring
Accel series 2022 Spring
 
気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップ気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップ
 
ユーザビリティテストの世界「入門編」
ユーザビリティテストの世界「入門編」ユーザビリティテストの世界「入門編」
ユーザビリティテストの世界「入門編」
 
コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~
コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~
コロナ禍に躍進した星野リゾートのIT戦略 ~コストカットと事業拡大を両立するAWS活用術~
 
「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論
「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論
「UXデザインと組織論」に、正面から向きあってみた:2016年2月27日 『人間中心デザイン』HCD導入設計論
 
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割
 
Microsoft Endpoint Configuration Manager 概要
Microsoft Endpoint Configuration Manager 概要Microsoft Endpoint Configuration Manager 概要
Microsoft Endpoint Configuration Manager 概要
 
NPO / ソーシャルビジネスのためのリーン・スタートアップ入門
NPO / ソーシャルビジネスのためのリーン・スタートアップ入門NPO / ソーシャルビジネスのためのリーン・スタートアップ入門
NPO / ソーシャルビジネスのためのリーン・スタートアップ入門
 
UXの考え方とアプローチ
UXの考え方とアプローチUXの考え方とアプローチ
UXの考え方とアプローチ
 
柔軟なプロジェクトデザインのコツ
柔軟なプロジェクトデザインのコツ柔軟なプロジェクトデザインのコツ
柔軟なプロジェクトデザインのコツ
 

Mais de furuCRM株式会社 CEO/Dreamforce Vietnam Founder

Mais de furuCRM株式会社 CEO/Dreamforce Vietnam Founder (20)

GithubAction+DevOpsCenter.pptx
GithubAction+DevOpsCenter.pptxGithubAction+DevOpsCenter.pptx
GithubAction+DevOpsCenter.pptx
 
BackupMetadataByGitAction.pptx
BackupMetadataByGitAction.pptxBackupMetadataByGitAction.pptx
BackupMetadataByGitAction.pptx
 
Salesforce Flow_InternalTraining.pptx
Salesforce Flow_InternalTraining.pptxSalesforce Flow_InternalTraining.pptx
Salesforce Flow_InternalTraining.pptx
 
FlowErrorHandling.pptx
FlowErrorHandling.pptxFlowErrorHandling.pptx
FlowErrorHandling.pptx
 
DevOpsCenter_BetaVersion.pptx
DevOpsCenter_BetaVersion.pptxDevOpsCenter_BetaVersion.pptx
DevOpsCenter_BetaVersion.pptx
 
Omni-Chanel_ForInternal.pptx
Omni-Chanel_ForInternal.pptxOmni-Chanel_ForInternal.pptx
Omni-Chanel_ForInternal.pptx
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
 
SVF cloud for salesforce
SVF cloud for salesforceSVF cloud for salesforce
SVF cloud for salesforce
 
External services
External servicesExternal services
External services
 
Data spider servista for Beginner
Data spider servista for BeginnerData spider servista for Beginner
Data spider servista for Beginner
 
Record level-access in Salesforce
Record level-access in SalesforceRecord level-access in Salesforce
Record level-access in Salesforce
 
Salesforce CMS
Salesforce CMS Salesforce CMS
Salesforce CMS
 
Salesforce Scheduler
Salesforce SchedulerSalesforce Scheduler
Salesforce Scheduler
 
Pardot MA Fundamental
Pardot MA FundamentalPardot MA Fundamental
Pardot MA Fundamental
 
Field service lightning
Field service lightningField service lightning
Field service lightning
 
ETL And Salesforce Integration
ETL And Salesforce IntegrationETL And Salesforce Integration
ETL And Salesforce Integration
 
Sfdx jenkins
Sfdx jenkinsSfdx jenkins
Sfdx jenkins
 
Heroku platform introduction
Heroku platform introductionHeroku platform introduction
Heroku platform introduction
 
Unlocked package
Unlocked packageUnlocked package
Unlocked package
 
Asynchronous apex
Asynchronous apexAsynchronous apex
Asynchronous apex
 

Último

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)NTT DATA Technology & Innovation
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルCRI Japan, Inc.
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 

Último (10)

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

Lock attachfilewhileparentrecordlocked