前書き
タイトル通り、コミュニティユーザがレポートを参照した際に「要求を完了できませんでした。Salesforceシステム管理者にお問い合わせください。」エラーが発生した際の対処法についてご紹介いたします。
まず確認すべきこと
まずは基本ですが、レポートとオブジェクト(の項目)のそれぞれに関して確認しましょう。
・レポート自体へのアクセス権があるかどうか
→レポートが格納されているフォルダの共有設定をチェック
・レポートで参照されているオブジェクトや項目へのアクセス権があるかどうか
→OLS(プロファイル)・RLS(OWD・ロール階層・共有ルール・Shareレコード)・FLS(項目レベルセキュリティ)
参考ヘルプ記事:参照権限のあるレポートでの「アクセス権がありません」エラー
次に確認すべきこと
上記を全て完璧に確認したうえでまだエラーが出る場合は、コミュニティユーザに特有の仕様が原因かもしれません。
「取引先責任者に関連する納入商品」・「取引先に関連する納入商品」・「商品」といった商品(に間接的に)関連する標準レポートタイプで作成されたレポートにコミュニティユーザはアクセスすることができません。
というのも、コミュニティユーザがレポートにアクセスするためには、当該レポートのレポートタイプに含まれているオブジェクトのOWDがPrivateになっている必要があるのですが、そもそも商品にはOWDの設定がないため、「OWDがPrivateになっている必要がある」というレポートアクセスの前提条件が決して満たされないからです。
参考ヘルプ記事:Community/Portal Users receive an ‘Insufficient Privileges’ error message within Reports
回避策
上記の問題はカスタムレポートタイプを利用して同じ内容のレポートを再現することで回避可能です。
例えば、「取引先に関連する納入商品」に関する標準レポートでエラーが発生する場合、「取引先と納入商品」のカスタムレポートタイプを利用して同じ内容のレポートを作成しなおすことで、エラーを回避することができます。
ただし、カスタムレポートタイプでは「商品」への参照が消えてしまうため、カスタムレポートタイプで作成しなおしたレポートでは商品の項目を表示することはできません。
上記挙動の背景:
「取引先に関連する納入商品」標準レポートタイプでは、「取引先」と「納入商品」だけでなく「商品」も暗黙にレポートタイプに含まれている。
「取引先と納入商品」のカスタムレポートタイプでは、標準レポートタイプと異なり、「商品」はレポートタイプに含まれない。
更に確認すべきこと
逆説的ですが、コミュニティユーザのレポートアクセスにおいては、OWDがpublicだとアクセス権が不足し、privateだとアクセス権が与えられるという事象が発生します。
もしもOWDがprivate以外になっている場合は、「OWDをprivateに変更し、別の方法でアクセス権を付与しなおす」ことを行ってください。
これは潜在的に関連し得る全てのオブジェクトに対して行う必要があります。
つまり、取引先レポートをCommunity Userに見せたい場合、取引先だけでなく商品などの外部OWDもprivateに設定する必要があるということを意味しています(※理由は謎ですが、とにかくそういう仕様です)