Apex トリガーの追加
このステップでは、前のステップで作成した MyHelloWorld クラスの applyDiscount メソッドをコールする Book__c カスタムオブジェクトのトリガーを作成します。
前提条件:
- Sandbox の Professional Edition、Enterprise Edition、Performance Edition、または Unlimited Edition 組織の Salesforce アカウント、または開発者組織のアカウント。
- MyHelloWorld Apex クラス。
トリガーは、Lightning プラットフォームデータベースで特定のタイプのレコードが挿入、更新、または削除される前または後に実行するコードの一部です。各トリガーは、トリガーが実行されるレコードへのアクセス権限を提供する一連のコンテキスト変数で実行します。すべてのトリガーは一括で実行します。つまり、複数のレコードを一度に処理します。
- Book のオブジェクト管理設定から、[トリガー] に移動し、[新規] をクリックします。
-
トリガーエディターで、デフォルトのテンプレートコードを削除し、このトリガーの定義を入力します。
1trigger HelloWorldTrigger on Book__c (before insert) { 2 3 Book__c[] books = Trigger.new; 4 5 MyHelloWorld.applyDiscount(books); 6}コードの最初の行はトリガーを定義します。
1trigger HelloWorldTrigger on Book__c (before insert) {このコードはトリガーに名前を付け、トリガーを実行するオブジェクトを指定し、トリガーを実行するイベントを定義します。たとえば、このトリガーを HelloWorldTrigger とし、Book__c オブジェクトで動作し、新しいブックがデータベースに挿入される前に実行するようにします。
トリガーの次の行は、books という名前のブックレコードのリストを作成し、Trigger.new というトリガーコンテキスト変数の内容を割り当てます。Trigger.new などのトリガーコンテキスト変数は、すべてのトリガーで暗黙的に定義され、トリガーを実行するレコードにアクセスできるようにします。この場合、Trigger.new には、挿入される新しいブックがすべて含まれます。
1Book__c[] books = Trigger.new;コードの次の行は、MyHelloWorld クラスのメソッド applyDiscount をコールします。新しいブックの配列に渡します。
1MyHelloWorld.applyDiscount(books);
挿入されるすべてのブックの価格を更新するために必要なすべてのコードが揃いました。ただし、このパズルのピースが 1 つ不足しています。単体テストは、コードを記述する上で重要な部分であり、必須です。次のステップでは、これが重要である理由を確認し、テストクラスを追加できます。