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.';
}
}
@Srilaxmi15
Copy link

Hi Faced same issue..Here is my solution.
My code executed.I just copied the Invoice number from Record and used in code. The dash length is same as developer console.

String s = InvoiceUtilities.renumberLineItems('INV–0011');

@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