You need to sign in to do that
Don't have an account?
Autonumbering records within batch class
global class LDPurchasedSV implements Database.Batchable<sObject>, Database.AllowsCallouts {
global Database.QueryLocator start(Database.BatchableContext BC) {
String query = 'SELECT Name,SV_Synced_Hidden__c,Lead_Number_Hidden__c,SV_Priority_Hidden__c,OwnerId,Days_To_SV_Hidden__c, Id FROM Lead WHERE Days_To_SV_Hidden__c <= 3 and SV_Synced_Hidden__c = FALSE';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Lead> scope) {
integer i=1;
for (Lead e : scope) {
if(e.OwnerId == '00Gi0000000iqle')
{
if(e.Days_To_SV_Hidden__c ==0)
{
e.SV_Priority_Hidden__c =1;
}
else{
if(e.Days_To_SV_Hidden__c == 1)
{
e.SV_Priority_Hidden__c =2;
}
else
{
e.SV_Priority_Hidden__c =3;
}
}
e.SV_Synced_Hidden__c = TRUE;
e.OwnerId ='00Gf0000000TIWj';
}
e.Lead_Number_Hidden__c = i;
i++;
Update scope;
}
}
global void finish(Database.BatchableContext BC) { }
}
I am trying to add a number field for all the records that come through this batch. The number should increment with every record.
Lead_Number_Hidden__c should be updated with number.
The above code is giving the same number for all the records.
Why you don't use Autoincremente in the Name field?
Try implementing Database.StateFull and declaring your i variable as field class.
Increment your i variable inside for and assign it.
Finally perform the update scope out of for.