You need to sign in to do that
Don't have an account?

Visualforceの「アクセス権がありません」エラーについて
お世話になっております。
以下のVisualforceをシステム管理者で実行したところ、
「アクセス権がありません」のエラーが発生しました。
解決法をご教示頂けますでしょうか。
※標準オブジェクトでは正常に表示されたのですが、カスタムオブジェクトですとエラーが発生してしまいます
<apex:page standardController="Research__c">
<apex:detail ></apex:detail>
</apex:page>
以下のVisualforceをシステム管理者で実行したところ、
「アクセス権がありません」のエラーが発生しました。
解決法をご教示頂けますでしょうか。
※標準オブジェクトでは正常に表示されたのですが、カスタムオブジェクトですとエラーが発生してしまいます
<apex:page standardController="Research__c">
<apex:detail ></apex:detail>
</apex:page>
カスタムオブジェクトのみ発生するとのことですので、おそらくそのユーザに対してカスタムオブジェクトの参照権限/作成権限などが付与されていないのではないでしょうか。
あとはVisualforceページ自体のアクセス権限が設定されているかも確認してみるといいかもしれません。
ご指摘の点を確認しましたが、当該カスタムオブジェクトの参照/作成権限は付与されており、Visualforceページの参照権限もありました。
(※プロファイルはシステム管理者となります)
追加情報として、standardControllerで指定している「Research__c」のページレイアウトに当該レコードを埋め込むと、以下のエラーが発生しました。
"コンテンツを表示できません: EntityObject can not be initialized with null EntityInfo"
このエラーは上記のアクセス権エラーに関するものなのでしょうか?
私はそのエラーに遭遇したことは無かったのですが、海外のDiscussion Forumに同じようなエラーについて投稿がありました。(解決していませんでしたが...)
https://developer.salesforce.com/forums/?id=906F00000008xB5IAI
ちなみにエラー発生時のコードはこれだけでしょうか。
これだけでしたら『apex:detail』に原因がありそうな気がします。例えば次のようなコードの場合に正しく表示されるか確認できれば、『apex:detail』の部分に問題がありそうです。
もしこのコードでもエラーが発生する場合は原因が他にありそうな気がします。
ご教示頂いた以下のコードでは、正常に動作することが確認できましたので、
「apex:detail」に問題がありそうです。
カスタムオブジェクトでも「apex:detail」使えると思うのですが、なぜエラーになるのか不思議です。。。
一応他のカスタムオブジェクトでも確認してみるといいかもしれません。
あとは表示される項目の権限でしょうか。システム管理者でもまれに項目レベルセキュリティの権限が外れていることがあります。
どうもフィード追跡を有効にしているカスタムオブジェクトでは、「apex:detail」で参照するとエラーが出る模様です。
エラーが発生していたカスタムオブジェクトのフィード追跡を無効にすると正常に画面表示できました。
でもなぜ、標準オブジェクトではフィード追跡を有効化しているに正常に表示されるのか、全然見当もつきません。。。
何かご存知でしょうか?
フィード追跡を有効にしたカスタムオブジェクトをつかって確認して見たのですがこちらでは再現できませんでした。
何か権限周りの問題な気はするのですが、ちょっと不思議ですね。。
可能性は低いですが、もしかするとバージョンの違いがかもしれませんね。Summer'16になったタイミングで何か違いがあるのかもしれません。
私のDeveloper環境で試して見るとNGでした。。。
フィード追跡の有効化自体は問題ないと思うのですが、apex:detailがフィードレイアウトをサポートしていないのかもしれません。
仰るとおりかもしれません。でも標準オブジェクトはサポートしているのであればカスタムオブジェクトもサポートして欲しいですね。。。
SFDCに確認できるタイミングがあれば聞いてみたいと思います!
調査へのご協力ありがとうございました。
しかしフィードレイアウトでカスタムオブジェクトの場合だけエラーになってしまうんですね。。覚えておこうと思います。