You need to sign in to do that
Don't have an account?
LIMIT_USAGE_FOR_NS ( Batch apex )
Hi,
I have created a batch apex in which we creating a Case based on certain criteria. But I am getting the issue LIMIT_USAGE_FOR_NS and not execute my queries. So cany please help on it. How to execute each query. I am trying this on my sandbox
Batch apex class
global class CSMCaseCreation implements Database.Batchable<sObject> { global Database.QueryLocator start(Database.BatchableContext BC) { String query = 'select Id, AccountId, CloseDate, Last_Login_Date__c , Name,Susbcription_Status__c from opportunity where StageName = \'Closed Won\' and Susbcription_Status__c in (\'Active\',\'Expired\') and days_After_Closed_Date__c =30 and (Orders_Last_30d__c <10 OR Last_Login_Date__c < LAST_N_DAYS:10 OR Product_Stage__c < 11)'; return Database.getQueryLocator(query); } global void execute(Database.BatchableContext BC, List<Opportunity> scope) { List<Case> lstCasetoInsert = new List<Case>(); LIST<Case> caseListToUpdate = new List<Case>(); Set<Case> caseSet = new Set<Case>(); List<Opportunity> lstOpp = new List<Opportunity>(); for(Opportunity o :scope){ Case caseObj =CreateCase('Open SAVE TEAM case','RISK: Unhealthy - 30 days', o.Id, o.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp2 = new List<Opportunity>(); opp2= [select Id, AccountId, Storefront_Marketplace__c,CloseDate, Last_Login_Date__c , Name,Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and days_After_Closed_Date__c =15 and Storefront_Marketplace__c='' and Product_Stage__c < 11 ]; for(Opportunity o2 : opp2) { Case caseObj =CreateCase('Open CHURN RISK case','RISK - QB Not Connected', o2.Id, o2.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp3 = new List<Opportunity>(); opp3= [select Id, AccountId, CloseDate, Susbcription_Status__c from opportunity where Open_Ticket__c=true or Last_30_days_Ticket__c=true or Open_Ticket_More_than_1_day__c =true or Open_Ticket_2__c=true ]; system.debug('Ahmed1'); for(Opportunity o3 : opp3) { Case caseObj =CreateCase('Open CHURN RISK case','RISK: Support Tickets', o3.Id, o3.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp4 = new List<Opportunity>(); opp4= [select Id,AccountId, CloseDate, Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and ((Orders_Last_30d__c < 10) OR (QB_Last_30d__c !=0 and QB_Last_30d__c <= 10)) limit 10 ]; for(Opportunity o4 : opp4) { Case caseObj =CreateCase('Open CHURN RISK case','RISK - No Orders Posted', o4.Id, o4.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp5 = new List<Opportunity>(); opp5= [select Id, AccountId, CloseDate, Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and QB_Last_30d__c =0 limit 5 ]; for(Opportunity o5 : opp5) { Case caseObj =CreateCase('Open SAVE TEAM case','RISK - No Orders Posted', o5.Id, o5.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp6 = new List<Opportunity>(); opp6= [select Id, AccountId, CloseDate, Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and days_After_Closed_Date__c = 30 and (Onboarding_Session_1_Complete__c =true OR Onboarding_Session_2_Complete__c=true) and Orders_Last_30d__c = 0 and QB_Last_30d__c =0 ]; for(Opportunity o6 : opp6) { Case caseObj =CreateCase('Open CS Case','RISK: No Usage', o6.Id, o6.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp7 = new List<Opportunity>(); opp7= [select Id, AccountId, CloseDate, Last_Login_Date__c , Name,Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and days_After_Closed_Date__c =45 and (Orders_Last_30d__c <10 OR Last_Login_Date__c < LAST_N_DAYS:10 OR Product_Stage__c < 11) ]; for(Opportunity o7 : opp7) { Case caseObj =CreateCase('Open SAVE TEAM case','SAVE TEAM', o7.Id, o7.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp8 = new List<Opportunity>(); opp8= [select Id, AccountId, CloseDate, Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and days_After_Closed_Date__c = 15 and Onboarding_Session_1_Complete__c =true and Onboarding_Session_2_Complete__c=true and QB_Last_30d__c =0 ]; for(Opportunity o8 : opp8) { Case caseObj =CreateCase('Open CHURN RISK case','RISK - No Orders Posted', o8.Id, o8.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp9 = new List<Opportunity>(); opp9= [select Id,Onboarding_Session_1_Complete__c , AccountId,days_After_Closed_Date__c , CloseDate, Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and days_After_Closed_Date__c = 15 and (Onboarding_Session_1_Complete__c =true OR Onboarding_Session_2_Complete__c=true) and (Orders_Last_30d__c <10 OR Last_Login_Date__c < LAST_N_DAYS:10 OR Product_Stage__c < 11) ]; for(Opportunity o9 : opp9) { Case caseObj =CreateCase('Open CS Case','RISK: Unhealthy - 15 days', o9.Id, o9.AccountId); lstCasetoInsert.add(caseObj); } List<Opportunity> opp10 = new List<Opportunity>(); opp10= [select Id,Onboarding_Session_1_Complete__c , AccountId,days_After_Closed_Date__c , CloseDate, Susbcription_Status__c from opportunity where StageName = 'Closed Won' and Susbcription_Status__c in ('Active','Expired') and Onboarding_Session_1_Complete__c =true and (Storefront_Marketplace__c ='' OR Product_Stage__c < 11) ]; for(Opportunity o10 : opp10) { Case caseObj =CreateCase('Open Onboarding Risk Case','RISK: Store / QB Not Connected', o10.Id, o10.AccountId); lstCasetoInsert.add(caseObj); } try { if(!lstCasetoInsert.IsEmpty()){ caseSet.addAll(lstCasetoInsert); caseListToUpdate.addAll(caseSet); system.debug('Kamran3'); insert caseListToUpdate; } } catch (system.dmlexception e) { System.debug('Case not inserted: ' + e); } } global Case CreateCase(String subject, String Casetype, Id oppId,Id accId){ Case caseObj = new Case( Opportunity__c = oppId, AccountId = accId, Status = 'New', Type = Casetype, Subject = subject ); return caseObj; } global void finish(Database.BatchableContext BC) { Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); mail.setToAddresses(new String[] {'ahmeds@example.com'}); mail.setReplyTo('ahmeds@examle.com'); mail.setSenderDisplayName('Batch Processing'); mail.setSubject('Batch Process Case Created Completed'); mail.setPlainTextBody('CSM case Batch Process has Completed'); Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail }); } }schedulable apex
Id batchJobId = Database.executeBatch(new CSMCaseCreation(), 1); System.schedule('Scheduled Job 1', '0 0 * * * ?', new ScheduleCSMCaseCreation());Execution Log
Can you guys please help me as soon as possible.
Thanks in advance.