Apex Database クラスメソッドで新しいレコードを挿入するサンプル
環境
salesforce
使用例
// sObjectsリストの作成
List<Account> acctList = new List<Account>();
acctList.add(new Account(Name='Pro1'));
acctList.add(new Account(Name='Pro2'));
// DML ステートメント
Database.SaveResult[] srList = Database.insert(acctList, false);
//返された各結果を反復処理
for (Database.SaveResult sr : srList) {
if (sr.isSuccess()) {
// 操作が成功したので、処理されたレコードの ID を取得
System.debug('Successfully inserted account. Account ID: ' + sr.getId());
}
else {
// 操作が失敗したため、すべてのエラーを取得
for(Database.Error err : sr.getErrors()) {
System.debug('The following error has occurred.');
System.debug(err.getStatusCode() + ': ' + err.getMessage());
System.debug('Account fields that affected this error: ' + err.getFields());
}
}
}
説明
Database.insert(acctList, false);
2 番目の追加の Boolean 値パラメータを渡すことで行えます。このパラメータを false に設定すると、
レコードが失敗しても、残りの DML 操作は正常に完了できます。デフォルトで、このパラメータ (省略可能) は true です。