Skip to content

Instantly share code, notes, and snippets.

@sbob-sfdc
Created September 2, 2012 23:41
Show Gist options
  • Save sbob-sfdc/3605667 to your computer and use it in GitHub Desktop.
Save sbob-sfdc/3605667 to your computer and use it in GitHub Desktop.
Workshop 201, Tutorial 5, Step 1, Apex
trigger DeleteRestrictInvoice on Invoice__c (before delete) {
// create a list of Invoices in Trigger.oldMap along with their Line Items
List<Invoice__c> invoices = [Select i.Name, (Select Name From Line_Items__r)
From Invoice__c i
Where i.Id IN :Trigger.oldMap.keySet()];
// loop through the Invoices, attaching errors to those that have Line Items
for (Invoice__c invoice : invoices) {
if (!invoice.Line_Items__r.isEmpty()) {
Trigger.oldMap.get(invoice.id).addError('Cannot delete Invoice with Line Items');
}
}
}
@zwb1988
Copy link

zwb1988 commented Dec 27, 2016

Thanks for the tip.

Merchandise is an required field. I realized that I can't access current DB by selecting first record from the Merchandise table in an Unite Test.

You must create a dummy object for testing, which it does make sense. Finally, I can complete my hands on tutorial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment