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
Vijay Kumar Rebbala 1Vijay Kumar Rebbala 1 

Mass delete Case records using Scheduled class

The code which i wrote executes but doesn't work. Can you explain why??
Scheduled Class:
global class Scheduler_DeleteoldCases implements Schedulable{
  global void execute(SchedulableContext SC) {
     DeleteoldCases gm = new  DeleteoldCases() ;
  }}

Apex Class:
global class DeleteoldCases{
    Public void DeleteoldCases(){
        Case[] QueryCases = [SELECT Id FROM Case WHERE CreatedDate < LAST_N_MONTHS:18 ORDER BY CreatedDate ASC  LIMIT 9000];
            system.debug('********List of Cases********'+QueryCases);
            If (QueryCases == null || (QueryCases!=null && !QueryCases.isEmpty()))
            {
                return;
            }
            try{
                delete QueryCases;
            }catch(DmlException e) {
                System.debug('An unexpected error has occurred: ' + e.getMessage());       
        }
    }
}
 
AmrenderAmrender
Hi Vijay

Your if condition seems to be wrong. Please use below code
global class DeleteoldCases {
    Public void DeleteoldCases() {
        Case[] QueryCases = [SELECT Id FROM Case WHERE CreatedDate < LAST_N_MONTHS:18 ORDER BY CreatedDate ASC  LIMIT 9000];
		System.debug('********List of Cases********'+QueryCases);
		if (QueryCases != null && !QueryCases.isEmpty()) {
			try {
				delete QueryCases;
			}catch(DmlException e) {
				System.debug('An unexpected error has occurred: ' + e.getMessage());       
			}
		}
    }
}

Let me know if it helps you.

Regards
Amrender
Vijay Kumar Rebbala 1Vijay Kumar Rebbala 1
I solved it.
Scheduled Class:
global class Scheduler_DeleteoldCases implements Schedulable{
  global void execute(SchedulableContext SC) {
     DeleteoldCases gm = new  DeleteoldCases() ;
     gm.DeleteoldCases();
  }}

Apex Class:
global class DeleteoldCases{
    Public void DeleteoldCases(){
        Case[] QueryCases = [SELECT Id FROM Case WHERE CreatedDate < LAST_N_MONTHS:18 ORDER BY CreatedDate ASC  LIMIT 9000];
            system.debug('********List of Cases********'+QueryCases);
            If (QueryCases.isEmpty()))
            {
                return;
            }
            try{
                delete QueryCases;
            }catch(DmlException e) {
                System.debug('An unexpected error has occurred: ' + e.getMessage());       
        }
    }
}