Skip to content

Instantly share code, notes, and snippets.

@SalesforceBobLightning
Last active July 3, 2018 22:31
Show Gist options
  • Save SalesforceBobLightning/0e84e92283bd92f4cefa930dd8548db1 to your computer and use it in GitHub Desktop.
Save SalesforceBobLightning/0e84e92283bd92f4cefa930dd8548db1 to your computer and use it in GitHub Desktop.
Salesforce Apex Class DeleteRecordAction has an @InvocableMethod for deleting records from Process Builder
global class DeleteRecordAction {
@InvocableMethod(label='Delete Record')
global static void deleteRecords(List<DeleteRecordActionRequest> requests) {
for(DeleteRecordActionRequest request : requests){
deleteRecord(request);
}
}
public static void deleteRecord(DeleteRecordActionRequest request) {
Database.delete(request.recordId);
}
global class DeleteRecordActionRequest {
@InvocableVariable(required=true)
global Id recordId;
}
}
@isTest
public class DeleteRecordActionTests {
@isTest
static void deleteRecords_DeleteRecord(){
// arrange
Account account = new Account();
account.Name = 'Bingo';
insert account;
Id recordId = account.Id;
DeleteRecordAction.DeleteRecordActionRequest request = new DeleteRecordAction.DeleteRecordActionRequest();
request.recordId = account.Id;
List<DeleteRecordAction.DeleteRecordActionRequest> requests = new List<DeleteRecordAction.DeleteRecordActionRequest>();
requests.add(request);
// act
DeleteRecordAction.deleteRecords(requests);
List<Account> results = [SELECT Id FROM Account WHERE Id = :recordId];
// assert
System.assertEquals(0, results.size());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment