問題
トリガーの実行順序で、beforeトリガーが実行された後、およびafterトリガーが実行される前に、どのステップが発生しますか。正確な順序を答えなさい。
- システム検証ステップが再度実行され、ユーザー定義の入力規則がチェックされます。
- beforeトリガー
- afterトリガー
- レコードはデータベースに保存されますが、まだコミットされていません。
- 重複ルールを実行します。
- 1→2→5→3→4
- 2→3→4→1→5
- 2→1→5→4→3
- 2→1→5→3→4
正解
- 1→2→5→3→4
- 2→3→4→1→5
- 2→1→5→4→3
- 2→1→5→3→4
解説
問題文から「beforeトリガーが実行された後(ステップ2)」と「afterトリガーが実行される前(ステップ3)」という情報が与えられているので、その2つのステップの間に他のステップが実行されることがわかります。よって2→1→5→4→3と即答できる問題です。
トリガーの実行順序についてはSalesforce公式ドキュメンテーション【トリガーと実行の順序】に詳しく記載されていますが、それに基づくと以下のようになります。
- まず、beforeトリガー(ステップ2)が実行されます。これは新規レコードが保存される前、または既存レコードが更新される前に実施されます。
- 次に、システム検証ステップが再度実行され、ユーザー定義の入力規則がチェックされます(ステップ1)。これは主に項目レベルセキュリティ検証として機能します。
- 重複ルールが実行されます(ステップ5)。これにより、新規作成または更新の試みが重複レコードを作成することを防ぎます。
- レコードはデータベースに保存されますが、まだコミットされていません(ステップ4)。これはafterトリガーが実行される前のステップであり、これによりレコードは一時的に保存されますが、まだ最終的にはコミットされていません。
- 最後に、afterトリガー(ステップ3)が実行されます。これはレコードが一時的に保存された後、最終的にデータベースにコミットされる前に行われます。
次の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第6問
問題 レコードセット内のレコード数が不明な場合、開発者は.size()または.length()メソッド呼び出しを実行せずに、レコードセット内のすべてのレコードに対して実行する…
前の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第4問
問題 現在取引先が100個ある場合に、開発者コンソールを使用して次のコードを実行します。 Account myAccount = new Account(Name = 'MyAccount'); insert myAc…
1問目から復習する
【Salesforce 認定Platformデベロッパー】試験対策:第1問
問題 デバッグログに書き込まれるときのxの値は何ですか。 Integer x = 0; do { x = 1; x++; } while (x < 1); System.debug(x); 0 1 2 3 正解 0 1 2 3 解説 デバッ…
コメント