この文章は 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 モバイルアプリケーションでのナビゲーションメニュー項目とアクションの追加