You need to sign in to do that
Don't have an account?
Shruthi MN 88
On account record deletion store that record in Backup object.
Can you help me wirte a handler class for the below senario
trigger createBackup on Account (after delete)
{
if(trigger.isDelete && trigger.isAfter)
{
List<My_Backup__c> lstToInsrt = new List<My_Backup__c>();
for(Account deletedAcc : trigger.old)
{
system.debug('deletedAcc '+deletedAcc );
My_Backup__c backup = new My_Backup__c();
backup.Name = deletedAcc.name;
lstToInsrt.add(backup);
system.debug('backup '+backup);
}
if(lstToInsrt.size()>0)
{
insert lstToInsrt;
system.debug('list'+lstToInsrt);
}
}
}
5. On account record deletion store that record in Backup object.
Create a new object Backup. In that create Long Text field - Record Backup.
Only those fields that have values must be saved in this with their fieldname and fieldvalue, also save Name of user who created this record and with createddate, lastmodified date.Each field value must start on new line.
trigger createBackup on Account (after delete)
{
if(trigger.isDelete && trigger.isAfter)
{
List<My_Backup__c> lstToInsrt = new List<My_Backup__c>();
for(Account deletedAcc : trigger.old)
{
system.debug('deletedAcc '+deletedAcc );
My_Backup__c backup = new My_Backup__c();
backup.Name = deletedAcc.name;
lstToInsrt.add(backup);
system.debug('backup '+backup);
}
if(lstToInsrt.size()>0)
{
insert lstToInsrt;
system.debug('list'+lstToInsrt);
}
}
}
Can you elaborate more on the scenario?
Have you created any handler class and facing issues?
public class CreateBackupHelper{
public static void afterDelete(List<Account> accountList){
List < Backup__c > lstToInsrt = new List < Backup__c > ();
for (Account deletedAcc: accountList){
system.debug('deletedAcc ' + deletedAcc);
Backup__c backup = new Backup__c();
backup.Name = deletedAcc.name;
lstToInsrt.add(backup);
system.debug('backup ' + backup);
}
if (lstToInsrt.size() > 0){
insert lstToInsrt;
system.debug('list' + lstToInsrt);
}
}
}
trigger createBackupTrigger on Account (after insert) {
if (trigger.isDelete && trigger.isAfter){
CreateBackupHelper.afterDelete(trigger.old);
}
}
Hi Shruthi,
Apex handler class:
public class AccountDeletionHandler {
public static void createBackup(List<Account> deletedAccounts) {
List<My_Backup__c> backupsToInsert = new List<My_Backup__c>();
for (Account deletedAccount : deletedAccounts) {
My_Backup__c backup = new My_Backup__c();
backup.Name = deletedAccount.Name;
String fieldValues = '';
for (SObjectField field : Account.sObjectType.getDescribe().fields.getMap().values()) {
String fieldName = field.getDescribe().getName();
if (deletedAccount.get(fieldName) != null) {
String fieldValue = String.valueOf(deletedAccount.get(fieldName));
fieldValues += fieldName + ': ' + fieldValue + '\n';
}
}
backup.Record_Backup__c = fieldValues;
backupsToInsert.add(backup);
}
if (!backupsToInsert.isEmpty()) {
insert backupsToInsert;
}
}
}
Trigger Class:
trigger createBackupTrigger on Account (after delete) {
if (Trigger.isDelete && Trigger.isAfter) {
AccountDeletionHandler.createBackup(Trigger.old);
}
}
Hope this will be helpful.
Thanks!