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

Visualforce とは?

Visualforce は、Lightning プラットフォームでネイティブにホストできるカスタムユーザーインターフェースを、開発者が作成できるようにするフレームワークです。Visualforce フレームワークには、HTML に似たタグベースのマークアップ言語が含まれています。また、クエリや保存など、基本的なデータベース操作を非常に簡単に実行できるサーバー側の「標準コントローラー」のセットが含まれています。

カスタム機能を構築する場合には、Visualforce よりも Lightning Web コンポーネントを使用することをお勧めします。Lightning Web コンポーネントは軽量であり、アプリケーションやサイトで卓越したパフォーマンスを発揮します。Visualforce ではなく、Lightning Web Components を使用すべき理由について確認するには、ここをクリックしてください。

Visualforce マークアップ言語では、Visualforce タグのそれぞれが、ページセクション、関連リスト、項目などの概略的または詳細なユーザーインターフェースコンポーネントに対応しています。Visualforce コンポーネントの動作は、標準の Salesforce ページと同じロジックを使用して制御できます。また、開発者が独自のロジックを Apex で記述されたコントローラークラスと関連付けることもできます。

Visualforce コンポーネントと、それに対応するタグのサンプル apex:page、apex:commandLink、apex:image、apex:relatedList、apex:pageBlock、apex:dataTable、および apex:detail タグへのコールアウトを含む Apex ページ

Visualforce ページとは?

開発者は Visualforce を使用して Visualforce ページ定義を作成できます。ページ定義は次の 2 つの主要な要素で構成されます。
  • Visualforce マークアップ
  • Visualforce コントローラー

Visualforce マークアップ

Visualforce マークアップは、Visualforce タグ、HTML、Javascript、または 1 つの <apex:page> タグ内に埋め込まれているその他の Web 対応コードで構成されています。マークアップでは、ページに含めるユーザーインターフェースコンポーネントとその表示方法を定義します。

Visualforce コントローラー

Visualforce コントローラーは命令セットの一種であり、関連する Visualforce マークアップに指定されたコンポーネントをユーザーが操作したときの動作を制御します。操作の 1 つに、ユーザーによるボタンまたはリンクのクリックがあります。コントローラーを使用すると、ページに表示されるデータにアクセスでき、また、コンポーネントの動作を変更できます。

開発者は Lightning プラットフォームが提供する標準コントローラーを使用するか、または Apex で記述されたクラスを含むカスタムコントローラーロジックを追加できます。
  • 標準コントローラーは、標準の Salesforce ページで使用されているものと同じ機能およびロジックで構成されます。たとえば、標準取引先コントローラーを使用する場合、Visualforce ページで [保存] ボタンをクリックした場合、標準の取引先編集ページで [保存] をクリックした場合と同じ動作が行われます。

    ページで標準コントローラーを使用した場合に、ユーザーにそのオブジェクトへのアクセス権がないと、アクセス権がないというエラーメッセージがページに表示されます。このエラーは、オブジェクトへのユーザーのアクセシビリティを確認し、コンポーネントを適切に表示することで解決できます。

  • 標準リストコントローラーでは、一連のレコードを表示または操作できる Visualforce ページを作成できます。レコードセットを使用する既存の Salesforce ページの例として、リストページ、関連リスト、一括アクションページなどがあります。
  • カスタムコントローラーは Apex で記述されるクラスで、標準コントローラーを使用せずにすべてのページのロジックを実装します。カスタムコントローラーを使用する場合、新しいナビゲーション要素または動作を定義できますが、標準コントローラーにすでに定義された機能も再実装する必要があります。

    その他の Apex クラスと同様に、カスタムコントローラー全体はシステムモードで実行されます。このモードでは現在のユーザーのオブジェクトと項目レベルの権限は無視されます。カスタムコントローラー内で、ユーザープロファイルを用いてアクセスするか否かを独自に決定することができます。

  • コントローラー拡張は、Apex で記述されるクラスで、標準コントローラーまたはカスタムコントローラーの動作を追加するか、動作を上書きします。拡張を使用すれば、独自のカスタムロジックを追加するだけでなく、別のコントローラーの機能も使用できます。

    標準コントローラーは、ユーザーモードで実行されます。このモードでは現在のユーザーの権限、項目レベルのセキュリティ、共有ルールが適用されます。標準のコントローラーを拡張することで、ユーザー権限が適用される Visualforce ページを作成できます。拡張クラスはシステムモードで実行しますが、標準コントローラーはユーザーモードで実行します。カスタムコントローラーと同様、ユーザープロファイルを参照してプログラムでアクセスさせるか否かを指定できます。

カスタムコントローラーとコントローラー拡張クラスはシステムモードで実行されるため、ユーザー権限や項目レベルセキュリティは無視されます。ただし、クラスの定義で with sharing キーワードを使用することによって、ユーザーの組織全体のデフォルト、ロール階層、および共有ルールを適用するかどうかを選択できます。詳細は、『Apex 開発者ガイド』の「with sharingwithout sharinginherited sharing キーワードの使用」を参照してください。

メモ

Visualforce ページを使用できる場所

開発者は Visualforce ページを使用して次のことを実行できます。
  • 取引先の [新規] ボタンまたは取引先責任者の [編集] ボタンなどの、標準ボタンを上書きする
  • [取引先] タブホームページなどのタブ概要ページを上書きする
  • カスタムタブを定義する
  • 詳細ページレイアウトにコンポーネントを埋め込む
  • ダッシュボードコンポーネントまたはカスタムヘルプページを作成する
  • Salesforce コンソールのサイドバー (カスタムコンソールコンポーネント) をカスタマイズ、拡張、統合する
  • Salesforce モバイルアプリケーションでのナビゲーションメニュー項目とアクションの追加