tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Community Cloudユーザと承認履歴について

承認履歴の一覧を表示するには、ProcessInstanceHistoryオブジェクトなどを利用することになりますが、このオブジェクト、特別なアクセスルールということで「ポータルユーザとコミュニティユーザはこのオブジェクトにアクセスできません。」となっています。
f:id:tyoshikawa1106:20160303230127p:plain


実際にコミュニティユーザでクエリを実行してみました。
f:id:tyoshikawa1106:20160303230446p:plain


このように『sObject type 'ProcessInstance' is not supported.』となってしまい、承認履歴の情報にアクセスすることはできませんでした。


そもそもコミュニティユーザでは承認申請自体利用できなかったりして..と思い、その部分についても確認してみました。f:id:tyoshikawa1106:20160303230639p:plain


結果、コミュニティユーザでもApexから承認申請処理を正常に実行することができました。ということで承認履歴関係のオブジェクトを参照できないだけで、承認申請自体は問題なく利用できました。
f:id:tyoshikawa1106:20160303230806p:plain


一般ユーザと同じ画面を使いまわそうとしてエラーになる。そんな落とし穴にハマる可能性も考えられるのでコミュニティユーザ向けの機能開発を行う場合はこの辺のルールを意識しておいた方がよさそうです。


ちなみにカスタム項目で承認状況のステータスを登録するための項目を用意してあげれば、同じように承認状況を表示することも可能だと思います。実際にコミュニティユーザで承認履歴情報にアクセスすることになったときはそんな感じで対応できるんじゃないかなと思います。