前書き
実装方針まで。
目標
Experience Cloudユーザ(ポータルユーザ/Community User)に対してレコードの添付ファイルを共有するにあたり、毎回手動で「顧客アクセス」を有効化しなくてもよいようにする。
「顧客アクセス」を有効にするとは、内部的にどのような操作なのか?
レコードに添付されたファイルの「顧客アクセス」を有効化すると、該当ファイルに紐づく(ShareType=Vの)ContentDocumentLinkレコードのVisibilityが”InternalUsers”から”AllUsers”に切り替わります。
ContentDocumentLinkのVisibilityが”AllUser”に変更されても、全てのポータルユーザが当該ファイルへのアクセス権を獲得するわけではなく、ファイルへのアクセス権は親のレコードへのアクセス権に依存します。
ファイルの「顧客アクセス」をデフォルトで有効化する
下記のいずれかの方法でShareType==’V’のContentDocumentLinkのVisibilityをUpdateする。
・ContentDocumentLinkのApex Trigger
・親レコードのApexTrigger(※フローからInvocable Methodを呼び出してもよい)