function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Mayank.msMayank.ms 

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
User-added image

Can you guys please help me as soon as possible.

Thanks in advance.