Salesforce 認定 Platform デベロッパー 上級 問題集

Salesforce 認定 Platform デベロッパー 上級(Platform Developer II)試験対策公式Exam Guide(Winter '24・2026年7月24日公開版)準拠

Salesforce 認定 Platform デベロッパー 上級の日本語問題集。全180問に解説つき。

Salesforce 認定 Platform デベロッパー 上級 無料問題 4 / 10 ・ 分野2: ロジックとプロセスの自動化

バッチ Apex のクラスに Database.Stateful を付け、処理した金額の合計を数えている。合計は static の変数 total と、インスタンスの変数 sum の両方に足している。finish で読んだときの値について正しいものはどれか。

  1. sum は塊をまたいで保たれ、total は塊ごとに元の値に戻る
  2. total と sum の両方が、塊をまたいで保たれる
  3. total と sum の両方が、塊ごとに元の値に戻る
  4. total は塊をまたいで保たれ、sum は塊ごとに元の値に戻る
正解と解説を見る

正解: A

正解の理由
バッチ Apex の各 execute は別のトランザクションになる。クラスの定義で Database.Stateful を指定すると、これらのトランザクションをまたいで状態を保てる。Database.Stateful を使うとき、トランザクションの間で値が保たれるのはインスタンスのメンバ変数だけで、static のメンバ変数は保たれず、トランザクションの間で戻される。Database.Stateful を指定しないと、static もインスタンスのメンバ変数も元の値に戻る。

違う選択肢
「total と sum の両方が、塊をまたいで保たれる」… Database.Stateful を付けても、トランザクションの間で値が保たれるのはインスタンスのメンバ変数だけ。static のメンバ変数は保たれず、トランザクションごとに戻る。
「total は塊をまたいで保たれ、sum は塊ごとに元の値に戻る」… 逆になっている。Database.Stateful で保たれるのはインスタンスのメンバ変数で、static のメンバ変数は保たれない。
「total と sum の両方が、塊ごとに元の値に戻る」… 両方が戻るのは Database.Stateful を付けないとき。付けたときは、インスタンスのメンバ変数の値が保たれる。

使いどころ
処理したレコードの件数や合計を数えるときに状態を保つと便利で、ドキュメントの例も execute で合計を足していく。数える変数はインスタンスのメンバ変数として宣言し、finish でまとめて記録する。

Salesforce 認定 Platform デベロッパー 上級の演習アプリ(無料10問・全問は解錠で)へ

問題集(note)を見る