Skip to content

Instantly share code, notes, and snippets.

@sbob-sfdc
Created September 2, 2012 23:37
Show Gist options
  • Save sbob-sfdc/3605654 to your computer and use it in GitHub Desktop.
Save sbob-sfdc/3605654 to your computer and use it in GitHub Desktop.
Workshop 201, Tutorial 3, Step 4.3, Apex
public class InvoiceUtilities {
// class method to renumber Line Items for a given Invoice number
// returns a string that indicates success or failure
public static String renumberLineItems(String invoiceName) {
// create a copy of the target Invoice object and it's Line Items
Invoice__c invoice = [Select i.Name, (Select Name From Line_Items__r ORDER BY Name)
From Invoice__c i
Where i.Name = :invoiceName LIMIT 1];
// loop through each Line Item, renumbering as you go
Integer i = 1;
for (Line_Item__c item : invoice.Line_Items__r) {
item.Name = String.valueOf(i);
System.debug(item.Name);
i++;
}
// update the Line Items in one transaction, rollback if any problems
// and return error messages to the calling environment
try {
database.update(invoice.Line_Items__r);
}
catch (DmlException e) {
return e.getMessage();
}
// on success, return a message to the calling program
return 'Line items renumbered successfully.';
}
}
@cmcguinness
Copy link

Srilaxmi15 is correct, copy and paste the invoice number from the application; for some reason it's a different dash. In the workbook, they use U+2013, En Dash, instead of what's in the record, a simple U+002D, Hyphen Minus sign.

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