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 つ不足しています。単体テストは、コードを記述する上で重要な部分であり、必須です。次のステップでは、これが重要である理由を確認し、テストクラスを追加できます。