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 です。