Apex トリガの追加
前提条件:
- Sandbox の Performance Edition、Unlimited Edition、または Enterprise Edition 組織の Salesforce アカウント、または Developer Edition 組織のアカウント。
- MyHelloWorld Apex クラス
このステップでは、前のステップで作成した MyHelloWorld クラスの applyDiscount メソッドをコールする Book__c カスタムオブジェクトのトリガを作成します。
トリガは、Force.com プラットフォームデータベースで特定のタイプのレコードが挿入、更新、または削除される前または後に実行するコードの一部です。各トリガは、トリガが実行されるレコードへのアクセス権限を提供する一連のコンテキスト変数で実行します。すべてのトリガは一括で実行します。つまり、複数のレコードを一度に処理します。
- [設定] から、 をクリックし、作成したオブジェクトの名前 (Book) をクリックします。
- [トリガ] セクションで、[新規] をクリックします。
-
トリガエディタで、デフォルトのテンプレートコードを削除し、このトリガの定義を入力します。
1swfobject.registerObject("clippy.codeblock-0", "9"); 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17trigger HelloWorldTrigger on Book__c (before insert) { 18 19 20 21 Book__c[] books = Trigger.new; 22 23 24 25 MyHelloWorld.applyDiscount(books); 26 27} 28 29コードの最初の行はトリガを定義します。
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 つ不足しています。単体テストは、コードを記述する上で重要な部分であり、必須です。次のステップでは、これが重要である理由を確認し、テストクラスを追加できます。