You need to sign in to do that
Don't have an account?
RDSS
I have batch class, it is getting executed and i have placed system.debug in it but only start method system.debug is getting tracked and entering in execute method but Lead . I am new to salesforce, please help. Below is my code
global class Batch_ABC implements Database.Batchable<sObject>
{
list<lead> lstLeads = new list<Lead>();
global string CISNumber;
public string str='closed';
string Query ='select name, CIS_No__c, Status__c from opportunity where PRODUCT_CODE_FORMULA__c IN (891, 894, 915) AND Status__c =\'' + str + '\'';
global database.QueryLocator start(Database.batchableContext bc)
{
System.debug(Query);
system.debug('inside start');
return database.getQueryLocator(Query);
}
global void execute(database.batchableContext bc, list<Opportunity> scope)
{
system.debug('inside Execute start');
for(Opportunity o : scope)
{
system.debug('inside For loop of execute');
CISNumber = o.CIS_No_MP__c;
system.debug('inside execute.. CIS No : ' + CISNumber );
}
for(Account a : [select name, (Select ID, Name from Leads__r where Status = 'Closed - Converted' AND Loan_Cycle__c = 'K1' AND Product_Code__c IN (891, 894, 915)) from account where CNumber =: CSNumber])
{
system.debug('Inside second loop of execute...');
for(lead l : a.Leads__r)
{
system.debug('inside nested loop of execute...');
lstLeads.add(l);
}
}
system.debug('Leads' + lstLeads);
delete lstLeads ;
}
global void finish(database.batchableContext bc)
{
}
}
{
list<lead> lstLeads = new list<Lead>();
global string CISNumber;
public string str='closed';
string Query ='select name, CIS_No__c, Status__c from opportunity where PRODUCT_CODE_FORMULA__c IN (891, 894, 915) AND Status__c =\'' + str + '\'';
global database.QueryLocator start(Database.batchableContext bc)
{
System.debug(Query);
system.debug('inside start');
return database.getQueryLocator(Query);
}
global void execute(database.batchableContext bc, list<Opportunity> scope)
{
system.debug('inside Execute start');
for(Opportunity o : scope)
{
system.debug('inside For loop of execute');
CISNumber = o.CIS_No_MP__c;
system.debug('inside execute.. CIS No : ' + CISNumber );
}
for(Account a : [select name, (Select ID, Name from Leads__r where Status = 'Closed - Converted' AND Loan_Cycle__c = 'K1' AND Product_Code__c IN (891, 894, 915)) from account where CNumber =: CSNumber])
{
system.debug('Inside second loop of execute...');
for(lead l : a.Leads__r)
{
system.debug('inside nested loop of execute...');
lstLeads.add(l);
}
}
system.debug('Leads' + lstLeads);
delete lstLeads ;
}
global void finish(database.batchableContext bc)
{
}
}
Chack query is having reords or not in developer console .
Regards ,
Harish.R
Try to go to ApexJob screen and check if a new record with the name of your method has been created
If there is a recod, look at the StatusDetail and TotalBatches colums. If status is Completed and TotalBatches is 0, it is because it is running but it is not doing anything at all.
If Status is Failed you can also check there the error. If the error is something like "Start did not return a valid iterable object" check your query (developer console maybe) because the result is not the expected one.
If the query returns data, maybe it is something with your code. Try to create a simple account in your execute
Let me know if this doesn't help and we can look for another solution as well.
Agustina