You need to sign in to do that
Don't have an account?
Ghanesan
Getting 'Illegal assignment from String to List<Account> ' error on Batch Apex
Error: Illegal assignment from String to List<Account>
Requirement:
SOQL:
1.account rating = prospect
2.account didn't have any opportunities last 2 years
3.account didn't have any tasks last 2 years
Action:
get this related account details and contact details
1.update account rating as dormant
Here is my Code:
global class opptask implements Database.Batchable <sobject>{
List <Account> acc = new List<Account>();
global Database.QueryLocator start(Database.BatchableContext bc) {
List <Task> taskList = new List<Task>();
string query = 'SELECT accountid FROM Task WHERE What.Type = Account AND CreatedDate = LAST_N_MONTHS:48';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext bc, List<Account> acclist) {
acclist ='SELECT Id, Name FROM account WHERE Rating = Prospect AND Id NOT IN (SELECT accountid FROM Opportunity WHERE CreatedDate = LAST_N_MONTHS:48) AND Id NOT IN (taskList)';
for (Account a : acclist) {
a.Rating = dormant;
}
Update acc;
}
global void finish(Database.BatchableContext bc) {
}
}
Requirement:
SOQL:
1.account rating = prospect
2.account didn't have any opportunities last 2 years
3.account didn't have any tasks last 2 years
Action:
get this related account details and contact details
1.update account rating as dormant
Here is my Code:
global class opptask implements Database.Batchable <sobject>{
List <Account> acc = new List<Account>();
global Database.QueryLocator start(Database.BatchableContext bc) {
List <Task> taskList = new List<Task>();
string query = 'SELECT accountid FROM Task WHERE What.Type = Account AND CreatedDate = LAST_N_MONTHS:48';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext bc, List<Account> acclist) {
acclist ='SELECT Id, Name FROM account WHERE Rating = Prospect AND Id NOT IN (SELECT accountid FROM Opportunity WHERE CreatedDate = LAST_N_MONTHS:48) AND Id NOT IN (taskList)';
for (Account a : acclist) {
a.Rating = dormant;
}
Update acc;
}
global void finish(Database.BatchableContext bc) {
}
}
try with below code.
If this helps, Please mark it as best answer.
Thanks!!
All Answers
try with below code.
If this helps, Please mark it as best answer.
Thanks!!
here is my code for Test:
@isTest
Private Class opptasktest {
Static testMethod void testBatchExecuteMethod()
{
Account a = new Account();
a.Name = 'John Smith';
a.Rating = 'Prospect';
insert a;
Test.startTest();
opptask batchTest = new opptask ();
Id jobid = Database.executeBatch(batchTest,5);
Test.stopTest();
Account acc = [Select Rating from Account where id=: a.Id];
System.assertEquals('Dormant', acc.Rating);
}
}