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

問題

Apex処理が100件のAccountレコードと2,000件のContactレコードを挿入した後、500件のOpportunityレコードを挿入しようとしてDML例外が発生しました。Accountレコードは、allOrNone引数をfalseに設定してdatabase.insert()メソッドを呼び出すことで挿入されます。ContactおよびOpportunityレコードは、スタンドアロンinsert文(通常のInsert 変数名;)を使用して挿入されます。この処理でデータベースにコミットされるレコードの総数はいくつですか。

  • 2,000
  • 2,100
  • 0
  • 100

正解

  • 2,000
  • 2,100
  • 0
  • 100

解説

処理の流れ

  • 100件のAccountレコードはDatabase.insert(obj, false)を使用して挿入されるので、これらのレコードはデータベースにコミットされます。
  • 次に2,000件のContactレコードがスタンドアロンのinsertステートメントを使用して挿入しようとしますが、この操作はガバナ制限を超えるため、DML例外が発生します。この例外が発生すると、この2,000件のContactレコードの挿入はロールバックされます。
  • 500件のOpportunityレコードの挿入は考慮する必要がありません。なぜなら、前のステップでDML例外が発生しているためです。

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

□ 2,000
これは不正解です。2,000件のContactレコードの挿入時にDML例外が発生するため、これらのレコードはデータベースにコミットされません。

□ 2,100
これは不正解です。2,000件のContactレコードはDML例外のためコミットされません。したがって、100件のAccountレコードと2,000件のContactレコードの合計2,100件がコミットされることはありません。

□ 0
これは不正解です。100件のAccountレコードはDatabase.insert(obj, false)を使用して正常にデータベースにコミットされます。

□ 100
これは正解です。Database.insert(obj, false)を使用して100件のAccountレコードがデータベースに正常にコミットされます。しかし、2,000件のContactレコードの挿入時にDML例外が発生するため、これらのレコードはデータベースにコミットされません。したがって、データベースにコミットされるレコードの総数は100件のAccountレコードのみとなります。

次の問題へ

前の問題へ

1問目から復習する

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

この記事を書いた人

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

コメント

コメントする

目次