Apex トリガーの定義
Apex コードは、トリガーを使用して呼び出すことができます。Salesforce レコードへの変更 (挿入、更新、削除) の前後にカスタムアクションを実行するように Apex トリガーを設定できます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic (使用できない組織もあります) および Lightning Experience |
使用可能なエディション: Performance Edition、Unlimited Edition、Developer Edition、Enterprise Edition、および Database.com Edition 標準オブジェクト、キャンペーン、ケース、およびメールは、Database.com Edition では利用できません。 |
| 必要なユーザー権限 | |
|---|---|
| Apex トリガーを定義する | 「Apex 開発」 |
Apex トリガーは、アプリケーション内で関連するオブジェクトの下にメタデータとして保存されます。
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) を趣旨とする当社サービスの一部とはみなされていません。
- トリガーにアクセスするオブジェクトのオブジェクト管理設定から、[トリガー] に移動します。Attachment、ContentDocument、および Note 標準オブジェクトでは、Salesforce ユーザーインターフェースでトリガーを作成できません。これらのオブジェクトの場合、トリガーを作成するには、開発者コンソールや Visual Studio Code 向け Salesforce 拡張機能などの開発ツールを使用してください。または、メタデータ API を使用することもできます。
- [トリガー] リストで、[新規] をクリックします。
-
このトリガーで使用する Apex と API のバージョンを指定するには、[バージョン設定] をクリックします。
組織が AppExchange から管理パッケージをインストールした場合、このトリガーで使用する各管理パッケージのバージョンも指定できます。すべてのバージョンでデフォルト値を使用して、トリガーを Apex、API、および各管理パッケージの最新バージョンに関連付けます。最新バージョンのパッケージのものとは異なるコンポーネントや機能にアクセスする場合は、管理パッケージの古いバージョンを指定することもできます。
- トリガーをコンパイルして有効にする必要がある場合は、[Apex トリガー] をクリックして [有効] チェックボックスをオンにします。組織のメタデータにコードを保存するだけの場合は、このチェックボックスはオフにしておきます。このチェックボックスは、デフォルトではオンです。
-
[内容] テキストボックスで、そのトリガーの Apex を入力します。1 つのトリガーは、最大 100 万文字までです。
trigger_events には、次のイベントを 1 つ以上含むカンマ区切りのリストを指定できます。
-
before insert -
before update -
before delete -
after insert -
after update -
after delete -
after undelete
メモ- 定期的なイベントまたは定期的な ToDo の
insert、delete、またはupdateによってトリガーが呼び出されると、Lightning Platform API からトリガーが一括コールされたときにランタイムエラーが発生します。 - after-insert または after-update トリガーを使用して、リード、取引先責任者、または商談の所有者を変更するとします。API を使用してレコード所有権を変更する場合、または Lightning Experience ユーザーがレコードの所有者を変更する場合、メール通知は送信されません。メール通知をレコードの新しい所有者に送信するには、DMLOptions の
triggerUserEmailプロパティをtrueに設定します。
-
- [保存] をクリックします。
トリガーは、最後にコンパイルされて以降、連動するメタデータに変更がない限り、isValid フラグを true に設定して保存されます。オブジェクトや項目の説明の編集などの表面的な変更も含めて、トリガーで使用されているオブジェクト名や項目に変更があると、Apex コンパイラーがコードを再処理するまで、isValid フラグは false に設定されます。トリガーが次に実行されるときか、ユーザーがトリガーをメタデータに再保存するときに、再コンパイルされます。
削除済みのレコードを参照項目が参照している場合、デフォルトで Salesforce は参照項目の値をクリアします。または、レコードが参照関係にある場合は削除されないように選択することもできます。
すべてのクラスおよびトリガーが正常にコンパイルされている必要があり、すべてのトリガーにテストカバー率が必要です。Apex の 75% 以上を単体テストの対象として、本番環境にコードをリリースする必要があります。「Apex 単体テスト」を参照してください。

