今日の問題はこれ。
DML を使用して複数のレコードを挿入する
クラスと、指定された数の新規取引先を作成してデータベースに追加する 1 つのメソッドを作成します。
https://trailhead.salesforce.com/ja/content/learn/modules/object-oriented-programming-for-admins/use-sobjects-and-dml?trail_id=build-apex-coding-skills
AccountHandler
という名前で公開 Apex クラスを作成する- public static メソッドをクラスに追加する:
- Name:
insertAccount
- 新規取引先数のパラメータを含める:
- データ型:
Integer
- 取引先レコードのリストを作成する:
- リスト名:
addAccounts
- while ループを使用して N 個の新規取引先をリストに追加する (N はループの反復ごとに 1 ずつ増える値):
ヒント: Tea Factory の新店舗を 3 つ作成したときと似た操作です。
- Name:
Acme Inc N
- AccountNumber:
A000n
- すべてのレコードを一度にデータベースに挿入する 1 つの DML ステートメントを作成する
- insertAccount メソッドを実行する
ほぼほぼカリキュラムでやった内容を変えていくくらいで作れる内容だったので、特に悩むところはなく。
public class AccountHandler {
public static void insertAccount(Integer numberOfAccounts) {
// レコードを保存するためのリストを初期化
List<Account> addAccounts = new List<Account>();
// 指定された数の新規取引先を作成
Integer n = 1;
while (n <= numberOfAccounts) {
// 新規取引先のインスタンスを作成
Account newAcc = new Account(
Name = 'Acme Inc ' + n,
AccountNumber = 'A000' + n
);
// 新規取引先をリストに追加
addAccounts.add(newAcc);
// インデックスをインクリメント
n++;
}
// レコードを一度にデータベースに挿入
insert addAccounts;
}
}
課題に「insertAccount メソッドを実行する」って記載があるので、Debug>Open Execute Anonymous Windowに以下の実行コードを追加して、動かしておかないと駄目な気がします。
※自分は最初からやったので、やらないと通らないかは不明。
AccountHandler.insertAccount(5); // 5つの新規取引先を作成
コメント