この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

カスタムコントローラの作成

カスタムコントローラは、引数をとらないデフォルトのコンストラクタを外部の最上位クラスに使用する Apex クラスです。パラメータを含むカスタムコントローラコンストラクタを作成することはできません。
  1. [設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選���します。
  2. [新規] をクリックします。
  3. [Version Settings (バージョン設定)] をクリックして、このクラスで使用する Apex および API のバージョンを指定します。組織が AppExchange から管理パッケージをインストールしている場合は、このクラスで使用する各管理パッケージのバージョンも指定できます。すべてのバージョンでデフォルト値を使用します。デフォルト値では、Apex および API についても、各管理パッケージについても、クラスを最新バージョンに関連付けます。最新バージョンのパッケージのものとは異なるコンポーネントや機能にアクセスする場合は、管理パッケージの古いバージョンを指定することもできます。特定の動作を維持するために、Apex および API の古いバージョンを指定できます。
  4. クラスエディタで、クラスの Apex コードを入力します。1 つのクラスの長さは、最大 100 万文字です。@isTest を使用して定義したコメント、テストメソッド、またはクラスは含みません。
  5. [保存] をクリックし、変更を保存してクラスの詳細画面に戻るか、[適用] をクリックし、変更を保存してクラスの編集を続行します。作成した Apex クラスは、クラスに保存する前に正しくコンパイルする必要があります。

次のクラスは、カスタムコントローラの単純な例です。

次の Visualforce マークアップは、上記のカスタムコントローラをページ内で使用する方法を示します。

カスタムコントローラは、<apex:page> コンポーネントの controller 属性が使用されているため、ページと関連付けられています。

標準コントローラおよびコントローラ拡張と同様に、カスタムコントローラのメソッドは、関連付けられたページマークアップで {! } 表記を使って参照できます。上記の例では、getAccount メソッドは <apex:inputField> タグの value 属性で参照されており、<apex:commandButton> タグは、action 属性が設定された save メソッドを参照しています。

他の Apex クラスと同様に、すべてのカスタムコントローラはシステムモードで実行されます。したがって、現在のユーザの資格情報はコントローラのロジックの実行に使用されていないため、ユーザの権限と項目レベルのセキュリティは適用されません。

クラスの定義で with sharing キーワードを使用することによって、カスタムコントローラでユーザの組織の共有設定、ロール階層、および共有ルールを適用するかどうかを選択できます。詳細は、『Apex 開発者ガイド』の「with sharingwithout sharinginherited sharing キーワードの使用」を参照してください。

カスタムコントローラは、新しいレコードを作成する場合にも使用できます。次に例を示します。

メモ

次の Visualforce マークアップは、上記のカスタムコントローラをページ内で使用する方法を示します。