You need to sign in to do that
Don't have an account?
Ashu sharma 38
How to resolve the limit in batch apex
Hello,
As I am trying to insert more than 10000 records by using batch apex,getting error too many DML.
As there is goverener limit that we can not perform dml more than 10000 records but I am using Batch apex,in that it overecome the governer limit by separting into batches(batches having their own limits).but not able to perform how to achiev this,
Please help me in this:
Thank you.
here is my code:
global class insertRecordsUsingBatchApex implements database.Batchable<sObject>{
global database.QueryLocator start(database.BatchableContext bc){
return database.getQueryLocator('select id,name,myEmail__c from Account limit 2000 ');
}
global void execute(database.BatchableContext bc,list<Account> scope){
for(Account cc:scope){
for(integer i=0;i<=10001;i++){
//10001 records insert
Account a=new Account(name='testingforInsertRecords' +i,myEmail__C='bsdh@gmail.com' );
scope.add(a);
}
insert scope;
}
}
global void finish(database.BatchableContext bc){
}
}
database.execute(**,100);
As I am trying to insert more than 10000 records by using batch apex,getting error too many DML.
As there is goverener limit that we can not perform dml more than 10000 records but I am using Batch apex,in that it overecome the governer limit by separting into batches(batches having their own limits).but not able to perform how to achiev this,
Please help me in this:
Thank you.
here is my code:
global class insertRecordsUsingBatchApex implements database.Batchable<sObject>{
global database.QueryLocator start(database.BatchableContext bc){
return database.getQueryLocator('select id,name,myEmail__c from Account limit 2000 ');
}
global void execute(database.BatchableContext bc,list<Account> scope){
for(Account cc:scope){
for(integer i=0;i<=10001;i++){
//10001 records insert
Account a=new Account(name='testingforInsertRecords' +i,myEmail__C='bsdh@gmail.com' );
scope.add(a);
}
insert scope;
}
}
global void finish(database.BatchableContext bc){
}
}
database.execute(**,100);
I can't figure out exactly what you are trying to do from your code. You are getting 2000 account records and then looping them all to insert more than 10000 records for each iteration.
If you are trying to insert 10,001 account record using batch apex then please refer to below code. It will insert account records in batches.
If you find it useful then select it as the best answer.
Shubham Nandwana.
AppPerfect Corp.
salesforce@appperfect.com
408-252-4100
http://www.appperfect.com/services/salesforce/
Salesforce Development & Operations Experts