global with sharing class BatchtodeletelogsNew implements Database.Batchable,Database.Stateful{ global Database.QueryLocator start (Database.BatchableContext bc){ string query= ''; String querys = 'Select '+CheckAccessibility.isAccessible('HIC_ShopifySync__Chunk_Size__c,id,HIC_ShopifySync__AccountContactBatchCompleted__c, name,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__ProductVariantBatchCompleted__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Collection__c, HIC_ShopifySync__how_many_days_keep_logs__c,HIC_ShopifySync__OrderBatchCompleted__c, HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Specify_Close_Date__c, HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__InventoryBatchCompleted__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c,, HIC_ShopifySync__Account_Contact__c, ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c limit 1'; list listOfConfiguration = new list(); listOfConfiguration = Database.query(querys); query = 'Select '+CheckAccessibility.isAccessible('id','HIC_ShopifySync__shopify_log__c')+' from HIC_ShopifySync__shopify_log__c'; if(!listOfConfiguration.isEmpty() && listOfConfiguration[0].HIC_ShopifySync__how_many_days_keep_logs__c != null){ query += ' where ' +CheckAccessibility.isAccessible('CreatedDate','HIC_ShopifySync__shopify_log__c')+'>'+query); return Database.getQueryLocator(query); } global void execute(Database.BatchableContext bc ,list scope){ try{ if(!scope.isEmpty()){ if(CheckAccessibility.isDeletable('HIC_ShopifySync__shopify_log__c')) Database.delete(scope,false); } }catch(exception e){ system.debug('getting errors when deleting logs'); } } global void finish(Database.BatchableContext bc){ system.debug('Delete logs successfully'); } }