[salesforce]カスタムボタン、カスタムリンクの内容のソースに、指定したいVisualforceページがでてこない

By |8月 20, 2009|Javascript, salesforce, |1 comments


Salesforceのオブジェクトには、カスタムボタンカスタムリンクを作成する機能があります。

ws000005

こんなような画面ですね。

ここで「内容のソース」というところで、このカスタムボタン、カスタムリンクのリンク先を指定することができます。

指定できるのは以下の4つです。

  • URL
    URLを直指定してリンク先を設定できます。http://yahoo.comとかにもできますし、/apex/hogehoge?id=xxxxxxみたいにSalesforce内のURLを指定することもできます。
  • カスタムSコントロール
    開発→Sコントロールで作成したSコントロールページを指定できます。
  • OnClick JavaScript
    クリック時に実行するJavaScriptを指定できます。
  • Visualforceページ
    開発→ページで作成したVisualforceページを指定できます。

ここでよく遭遇する問題として、標題にもある「カスタムボタン、カスタムリンクの内容のソースに、指定したいVisualforceページがでてこない」という問題があります。

たとえば「取引先(Account)」オブジェクトのカスタムボタン、カスタムリンクにVisualforceページ割り当てを行いたい場合、そのVisualforceページのコントローラでそのオブジェクトのスタンダードコントローラを設定していないとドロップダウン項目に指定したいvisualforce ページが出てきません。

<apex:page controller="hogehogeController" tabStyle="Account">

これが指定したいVisualforceページだとしたら

<apex:page standardController="Account" extensions="hogehogeController" tabStyle="Account">

こんな感じに書き換える必要があります。

なお、extentions=”apexクラス名” とするとそのクラスのコンストラクタに

public hogehogeController(ApexPages.StandardController controller) {
   }

を入れる必要が出てきます(SF側のアラートをクリックすると自動生成されます)。
これがめんどくさいっていう場合は、内容のソースで「URL」を選択して指定したいVisualforceページのリンクを直指定してやれば設定することもできます。こっちのほうが楽チン。

/apex/hogehogeController

こんなかんじでURLとして記述。

One thought on “[salesforce]カスタムボタン、カスタムリンクの内容のソースに、指定したいVisualforceページがでてこない

  1. Pingback: Q.「内容のソース:Visualforceページ」を指定し、コンテンツを指定しようとしても先程作成したVisualforceページの名前が見当たりません。 | Salesforceの質問&回答 (Q&A) サイト - 教えて!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です