You need to sign in to do that
Don't have an account?
symantecAP
Problem with scheduling Apex
Hi I have an apex classes which is scheduled 1a.m everyday. The apex class aborts and gives the following error
First error: SQLException [java.sql.SQLException: ORA-01013: user requested cancel of current operation
: select /*AggJoin*/ "AccountId",
"Id",
"Subject",
"OwnerId",
"RecordType__c",
"Purpose__c",
"WhoId",
"ActivityDate",
"ActivityDate.AUX",
Here is my code. Kindly help
/* Extension case#03698934 This scheduler will consider only the following Events. Events where last modify date is yesterday and End date is less then today AND Profile of Assigned To = Apartments.com House AC, Apartments.com RM User, Apartments.com Standard User, Gannett Standard User, LA Times Standard User AND Event Record Type = Standard Event OR (Event Record Type = Event (Contact Optional) AND Level – Type = “Leases 4 Lunch”,” Mgmt Co – Cold Call Visit”,”Property – Cold Call Visit”) and update the account info on from the selected Events information */ global class ContactLastActivityDateBatch implements Database.Batchable<sObject>{ public String query; global database.querylocator start(Database.BatchableContext BC){ return Database.getQueryLocator(query); } global void execute(Database.BatchableContext BC, List<sObject> scope){ List<Account> accList= new List<Account>(); for(sObject s : scope){ Account acc = (Account)s; System.debug('Rajan Testing date 1'+acc); if(acc.ActivityHistories.size() > 0 && (acc.Last_visit_date__c == null || acc.Last_visit_date__c <= acc.ActivityHistories[0].ActivityDate)){ try{ ActivityHistory act = acc.ActivityHistories; acc.Last_visit_subject__c = act.Subject; acc.Last_visit_date__c = act.ActivityDate; acc.Last_visit_assigned_to__c = act.Owner.Name; acc.Last_visit_record_type__c = act.RecordType__c; acc.Last_visit_purpose__c = act.Purpose__c; acc.Last_visit_level_type__c=act.Level_Type__c; acc.Last_visit_description__c=act.Description; //Populate only if who Id in Event is populated with a Contact Name. if(act.whoId != null && string.valueOf(act.whoId).startsWith('003')) acc.Last_visit_contact_name__c = act.whoId; else acc.Last_visit_contact_name__c = null; //System.debug('Rajan Testing date 2'+c.Last_Activity_Date__c + act.ActivityDate); accList.add(acc); } catch(Exception ex){ System.debug(ex.getMessage()); } } } update accList; } global void finish(Database.BatchableContext BC){} }
/*Salesforce.com Extension#03698934 This class implements apex schedular interface to update Last Activity Date on Account */ global class updateAccountLastActivityDate implements Schedulable { global void execute(SchedulableContext ctx){ ContactLastActivityDateBatch accBatch = new ContactLastActivityDateBatch (); accBatch.query ='select Name, Last_visit_subject__c,Last_visit_level_type__c,Last_visit_description__c,Last_visit_date__c, Last_visit_assigned_to__c, Last_visit_record_type__c, Last_visit_purpose__c, Last_visit_contact_name__c,' +'(Select Subject,Owner.Name,RecordType__c,Purpose__c, whoId ,AccountId,id,ActivityDate,Level_Type__c,Description from ActivityHistories where ' +'Custom_Profile_Name__c in (\'Apartments.com House AC\',\'Apartments.com RM User\',\'Apartments.com Standard User\',\'Gannett Standard User\',\'LA Times Standard User\')' +' AND (RecordType__c=\'Standard Event\' OR (RecordType__c=\'Event (Contact Optional)\' AND Level_Type__c in (\'Leases 4 Lunch\',\'Mgmt Co - Cold Call Visit\',\'Property - Cold Call Visit\')))' +' AND ActivityDate <= TODAY' +' AND Isdeleted =false' +' order by ActivityDate desc limit 1) from Account'; ID batchprocessid = Database.executeBatch(accBatch); } }
Thanks in Advance .
You should open up a case about that since it's an internal sf error. However, the problem is most likely with the query you're constructing. Can you try and run the query through anonymous apex and make sure that is is compiling into valid soql?
line 1, column 14: Global type must be contained inside of a global class
I get this error when i try to execute anonymous