すべてのファイル情報を取得するには【Salesforce】

お久しぶりです、やましです。約1年ぶりの投稿です。

運用していくなかでSalesforce上にアップロードされたすべてのファイルの一覧情報(ファイル名、ファイルサイズ、アップロード日時など)を抽出したいと思ったことありませんか?
※自分がアップロードしたファイル情報だけでなく他のユーザがアップロードしたものも含めてすべてのファイル

今回は、自分がアップロードしたファイル情報だけでなく、全ユーザがアップロードしたファイル情報を取得するために必要な設定方法についての記事となります!

設定なしの場合

取引先に対して異なるユーザがファイルアップロードを行ったとします。

次に、「nsd admin」ユーザにて下記SOQLを実行してファイル情報を抽出してみます。

SELECT id, title, ContentSize, FileExtension, CreatedDate, CreatedBy.name
FROM ContentDocument

すると、下のキャプチャのように「nsd admin」ユーザがアップロードしたファイル情報しか抽出ができませんでした。

 

それでは他のユーザがアップロードしたファイル情報も抽出するためにはどのような設定が必要となるでしょうか。
以下の設定方法をご確認ください。

「すべてのファイルのクエリ」権限を付与

システム管理者等のユーザに「すべてのファイルのクエリ」権限を付与していただくことで、組織内のすべてのファイルをデータローダ等で抽出することが可能となります。
権限セットを利用した本権限の付与手順をご紹介いたします。
※「すべてのデータの参照」権限がある前提となります。この権限がない場合は「すべてのデータの参照」権限の付与も必要となります。

【権限セット設定手順】

1、設定画面にアクセスし、クイック検索に「権限」と入力し、[権限セット]を選択
2、[新規] をクリック
3、表示ラベルとAPI参照名を入力し、[保存] をクリック
4、[アプリケーション権限] をクリック
5、[編集] をクリック
6、[すべてのファイルをクエリ] にチェックを入れ、[保存] をクリック
7、[割り当ての管理] | [割り当てを追加] をクリック
8、対象ユーザにチェックを入れ、[次へ]をクリック
9、必要に応じて有効期限を設定し、[割り当て] | [完了] をクリック

上記手順にて作成した権限セットを「nsd admin」ユーザに対して割り当てを行います。

 

上記権限が割り当てられている状態で、再度「nsd admin」ユーザにて下記SOQLを実行してファイル情報を抽出してみます。

SELECT id, title, ContentSize, FileExtension, CreatedDate, CreatedBy.name
FROM ContentDocument

 

すると、下のキャプチャのように「nsd admin」以外のユーザがアップロードしたファイル情報も抽出ができるようになっています。

このように他ユーザがアップロードしたファイル情報も抽出することが可能となります。

まとめると、

・「すべてのファイルのクエリ」権限を付与することで他ユーザがアップロードしたファイル情報も抽出可能
・「すべてのデータの参照」権限をもっている前提

となります。ご参考になれば幸いです。