Apex コードの概要
Apex は、開発者が Lightning プラットフォームサーバーでフローとトランザクションの制御ステートメントを Lightning Platform API へのコールと組み合わせて実行できるようにする、強く型付けされたオブジェクト指向のプログラミング言語です。Java に似た、データベースのストアドプロシージャーのように動作する構文を使用する Apex により、開発者は、ボタンクリック、関連レコードの更新、および Visualforce ページなどのほとんどのシステムイベントにビジネスロジックを追加できます。Apex コードは、Web サービス要求、およびオブジェクトのトリガーから開始できます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic (使用できない組織もあります) および Lightning Experience |
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition、および Database.com Edition |
Apex は、2 種類の形式でプラットフォームに格納できます。
- クラスは、Apex オブジェクトを作成するためのテンプレート、つまり設計図です。他のクラス、ユーザー定義メソッド、変数、例外型、および静的初期化コードで構成されます。[設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択します。
- トリガーは、オブジェクトレコードがデータベースに挿入される前や、レコードが削除された後など、特定のデータ操作言語 (DML) 行動が発生する前後に実行される Apex コードです。トリガーは、Salesforce にメタデータとして保存されます。組織のすべてのトリガーのリストは、[設定] の [Apex トリガー] ページにあります。
Apex は一般に、システムコンテキストで実行されます。つまり、コード実行時に、現在のユーザーの権限および項目レベルセキュリティは考慮されません。ただし、共有ルールは必ずスキップされるわけではありません。共有ルールが適用されないようにするには、必ず without sharing キーワードを使用してクラスを宣言する必要があります。
Apex の 75% 以上を単体テストの対象として、本番環境にコードをリリースする必要があります。また、すべてのトリガーについても何らかのテストを行う必要があります。
クラス、トリガー、テストを作成した後は、開発者コンソールを使用して、再度実行を実行します。
Developer Edition 組織、Salesforce Enterprise Edition のトライアル組織、または Sandbox 組織を使用している場合にのみ、Salesforce ユーザーインターフェースを使用して Apex を追加、編集、または削除できます。Salesforce の本番組織の場合、Apex を変更するには、メタデータ API の deploy コール、Visual Studio Code 向け Salesforce 拡張機能、または Ant 移行ツールのみを使用できます。Visual Studio Code 向け Salesforce 拡張機能および Ant 移行ツールは、Salesforce がユーザーとパートナーをサポートするために提供する無料のリソースですが、Salesforce メインサービス契約 (MSA) を趣旨とする当社サービスの一部とはみなされていません。
Apex の構文と使用方法についての詳細は、『Apex コード開発者ガイド』を参照してください。
- Apex 開発者ガイドおよび開発者ツール
『Apex 開発者ガイド』と『Apex リファレンスガイド』では、Apex プログラミング言語の完全リファレンスが提供されます。『Apex 開発者ガイド』では、Apex の呼び出し方法、制限の使用方法、テストの記述方法などが説明されています。『Apex リファレンスガイド』では、Apex クラス、インターフェース、例外などに関するリファレンス情報が提供されています。Apex コードを記述する場合、Salesforce およびサードパーティのいくつかのツールから選択できます。 - Apex クラスの定義
Salesforce では Apex クラスをメタデータとして保存します。 - Apex トリガーの定義
Apex コードは、トリガーを使用して呼び出すことができます。Salesforce レコードへの変更 (挿入、更新、削除) の前後にカスタムアクションを実行するように Apex トリガーを設定できます。 - 匿名 Apex コードの実行
開発者コンソールでは、Apex コードを、特定のアプリケーションロジックに対応するデバッグログを生成する手段としても実行できます。 - Apex 例外が発生すると何が行われるか
例外が発生すると、コードの実行が停止します。例外の前に処理された DML 操作はロールバックされてデータベースにはコミットされません。例外はデバッグログに記録されます。未対応の例外、つまり、コードがキャッチしない例外の場合、Salesforce から例外情報を記載したメールが送信されます。エンドユーザーの Salesforce ユーザーインターフェースにはエラーメッセージが表示されます。 - 管理パッケージでの Apex 例外処理
AppExchange 用に管理パッケージを作成するときは、Apex で捕捉されない例外が発生したときにメールで通知を受け取るユーザーを指定できます。 - Apex クラスの管理
Apex クラスは、Apex オブジェクト作成するためのテンプレート、つまり設計図です。他のクラス、ユーザー定義メソッド、変数、例外型、および静的初期化コードで構成されます。 - Apex トリガーの管理
トリガーは、オブジェクトレコードがデータベースに挿入される前や、レコードが削除された後など、特定のデータ操作言語 (DML) 行動が発生する前後に実行される Apex コードです。 - Apex のバージョン設定の管理
下位互換性を維持するために、Apexクラスとトリガーは、Salesforce APIおよび参照される管理パッケージのバージョン設定と共に保存されます。 - Apex クラスの表示
クラスを作成した後に、クラスに含まれるコード、クラスの保存対象の API、およびクラスが有効かどうかを表示できます。 - Apex トリガー詳細の表示
Apex トリガーは、アプリケーション内で関連するオブジェクトの下にメタデータとして保存されます。 - WSDL からの Apex クラスの作成
Apex クラスは、ローカルハードドライブやネットワークに保管されている WSDL ドキュメントから自動的に生成されます。 - Apex ジョブキューの監視
Apex ジョブの [設定] ページには、Apex ジョブに関する情報 (非同期 Apex の使用率、24 時間の組織制限のうち使用された Apex 操作の数など) が表示されます。Apex ジョブの状況を監視し、潜在的な制限の問題を発生前に軽減します。 - Apex Flex キューの監視
[Apex Flex キュー] ページを使用して、状況が「保留」のすべての一括処理ジョブの参照および並び替えを行うことができます。または、Apex コードを使用してプログラムで一括処理ジョブを並び替えることができます。 - Apex ジョブのスケジュール
特定の Apex クラスを定期的に実行する場合、または Salesforce ユーザーインターフェースを使用して Apex の一括処理ジョブを実行する場合は、Apex スケジューラーおよびSchedulableインターフェースを使用します。 - FAQ - Apex
外部 Web サービス、サポートされる WSDL スキーマの種類、Apex クラスとトリガーの違いに関する FAQ。

