MemberJuly 31, 2018 at 12:52 pm
How can we hard delete a record using a Salesforce Apex class by code?
MemberJuly 31, 2018 at 1:11 pm
Hard delete is done by using DataBase.emptyRecycleBin method in the Batch class. Create a sample Batch class as mentioned below and use DataBase.emptyRecycleBin method in the Batch class.
global class BatchDeletion implements Database.Batchable<sObject>, Schedulable
global Database.QueryLocator start(Database.BatchableContext bc)
//query to return all expired Case Share records
return Database.getQueryLocator([Select id from Account where Name='Test Account12']);
global void execute(SchedulableContext sc)
//execute the batch
BatchDeletion deleteCS = new BatchDeletion();
ID batchprocessid = Database.executeBatch(deleteCS);
global void execute(Database.BatchableContext BC, list<sObject> scope)
System.debug('## deleting '+scope.size()+' case share recs');
//delete list of expired Case Share records
global void finish(Database.BatchableContext BC)
//no post processing
/* System.debug('## Batch Job Finished ##');
UpdateAccountFields m = new UpdateAccountFields ();
String sch = '20 30 8 10 2 ?';
system.schedule('Merge Job', sch, m);*/
Hope this will help you.
MemberSeptember 17, 2018 at 11:54 pm
We can hard delete record or list of records using emptyRecycleBin() function in apex. Pass the record or record list to emptyRecycleBin() to delete it from Recycle Bin.
Contact con = new Contact(Id = ’09k110000O5abc’);
Note: The DML operation datatbase.emptyRecycleBin() is limited to 200 items.
Hope this helps.
Log in to reply.