【Salesforce 認定Platformデベロッパー】試験対策:第41問

問題

開発者は、複雑なトリガーロジックを処理するためにApexヘルパークラスを作成しました。トリガーがDMLガバナ制限を超えた場合、ヘルパークラスはどのようにユーザーに警告できますか。

  • Messaging.sendEmail()を使用してトランザクションを続行し、DML文の数を超えたらユーザーにアラートを送信する。
  • PageReference.setRedirect()を使用して、DML文の数を超える前にユーザーをカスタムVisualforceページにリダイレクトする。
  • Limits.getDMLRows()を使用して、DML文の数を超える前にエラーメッセージを表示する。
  • ApexMessage.Messages()を使用して、DML文の数を超えた後にエラーメッセージを表示する。

正解

  • Messaging.sendEmail()を使用してトランザクションを続行し、DML文の数を超えたらユーザーにアラートを送信する。
  • PageReference.setRedirect()を使用して、DML文の数を超える前にユーザーをカスタムVisualforceページにリダイレクトする。
  • Limits.getDMLRows()を使用して、DML文の数を超える前にエラーメッセージを表示する。
  • ApexMessage.Messages()を使用して、DML文の数を超えた後にエラーメッセージを表示する。

解説

それぞれの選択肢の理由について説明します。

□ Messaging.sendEmail()を使用してトランザクションを続行し、DML文の数を超えたらユーザーにアラートを送信する。
これは不正解です。Messaging.sendEmail()メソッドはメールを送信するために使用されますが、DMLガバナ制限を超えた時点でトリガーが失敗し、トランザクションがロールバックされるため、メールの送信は実行されません。加えて、ガバナ制限を超える前に警告を行うことは不可能です。

□ PageReference.setRedirect()を使用して、DML文の数を超える前にユーザーをカスタムVisualforceページにリダイレクトする。
これは不正解です。PageReference.setRedirect()は通常、VisualforceページのコントローラやカスタムのApexロジックで使用されます。トリガーの中でこの方法を使うことはできません。

□ Limits.getDMLRows()を使用して、DML文の数を超える前にエラーメッセージを表示する。
これは正解です。Limits.getDMLRows()メソッドを使用して、トリガーが実行されている間に現在のトランザクションでどれだけのDML行が使用されているかを監視できます。これにより、ガバナ制限に達する前に適切なエラーメッセージをトリガーからスローしてユーザーに警告することが可能です。

□ ApexMessage.Messages()を使用して、DML文の数を超えた後にエラーメッセージを表示する。
これは不正解です。ApexMessage.Messages()というメソッドは存在しないため、エラーメッセージを表示するために使用することはできません。

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメントする

目次