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

Salesforce

Posted by arkgame