function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ikaseikase 

カスタムオブジェクト標準の編集画面の保存ボタンを非表示にしたい

はじめまして。質問させてください。

 

掲題のとおり、カスタムオブジェクトを作成した際に自動で用意される標準の編集画面(「http://~/{レコードID}/e」でアクセスできる画面)

の保存ボタンを非表示にしたいのですが可能でしょうか。

 

詳細画面のボタンの表示/非表示については、カスタムオブジェクトの「ページレイアウト」からできるようなのですが

編集画面の設定をどこで行なえばよいかわかりません…よろしくお願いいたします。

 

※これを実現したいと考えたそもそもの経緯は以下の通りです。

 

カスタムオブジェクトを作成し、このレコードを登録・編集するためのVisualforceページを作成しました。

ユーザにはVFページだけ利用して欲しいので、標準の編集画面にはアクセスできないようにしたいと考えました。

VFページは標準コントローラやapex:inputfieldタグを利用して、ユーザへのレコードへのアクセス権によって

参照のみ/登録化などを切り替えていますので、プロファイルの設定でアクセス制御する方法はとりたくありませんでした。

 

単純に、指定したオブジェクトの標準ページを利用不可にする設定があればと思ったのですが無いようでした。

そこで、標準画面へアクセスされることまでは許容し、登録更新を行えないよう「保存」ボタンを非表示にする対応を取りたいと考えた次第です。

ikouikou

>単純に、指定したオブジェクトの標準ページを利用不可にする設定があればと思ったのですが無いようでした。

 

オブジェクト設定画面にある、「標準ボタンと標準リンク」の標準ボタンを

Visualforceで上書きする方法でいかがでしょうか。

ikaseikase

早速のアドバイスありがとうございます。

 

> オブジェクト設定画面にある、「標準ボタンと標準リンク」の標準ボタンを

> Visualforceで上書きする方法でいかがでしょうか。

 

こちらの対応で要件が満たせそうです!

ボタンを上書いた場合、遷移先がVisualforceの画面(/apex/~)となるだけで標準の編集画面(/{レコードID}/e)も生きているのかな、

と思ったのですが、標準の編集画面のURLを直接指定してもVFページにリダイレクトされるようになるのですね。

これで標準ページへのアクセスを禁止できそうです。ありがとうございました。

 

ただ、ユーザによっては標準の編集ページを使いたいケースもあり…ボタンの上書き設定もレイアウトと同じく

プロファイルごとに設定できればよかったのですが…

ikouikou

間に1ページ挟んで、そこでプロファイルによって次に行く画面を変えればできそうですけどね。

標準レイアウトに行きたい時は、nooverrideパラメータで制御できたはずです。

 

/001G000000qat3e/e?nooverride=1

とか。

ikaseikase

またまた貴重なアドバイスありがとうございます。

 

>標準レイアウトに行きたい時は、nooverrideパラメータで制御できたはずです。

 

nooverride=1で標準画面に遷移できました。遷移先の切り替えもできそうですね。

裏を返すとVFページを使わせたいユーザがnooverrideつきのURLを直接指定したら

やっぱり標準画面に行かれてしまうということですね…

 

VFページがある場合は標準ページでは登録させたくないという要件はよくあるものだと思っていたのですが、そうでもないのでしょうか…?

そもそもForce.comというシステムは特定メンバが利用するクローズドなシステムなので、リンクもされていないページに勝手に遷移して

データ操作した結果不整合が起きてもそんなことする方が悪い、というのが一般的な考えなんでしょうか^^;