13

Is there any function in Apex which could emulate functionality of the CASESAFEID() formula function? I'm trying to get 18-char Id variant from the standard one.

29

Per the Apex docs on primitive datatypes, "Note that if you set [an] ID to a 15-character value, Apex automatically converts the value to its 18-character representation." So it should be enough to assign your 15 character id to an ID-typed variable, and then back to a string, like so:

string idStr = '001E000000nwg7g';   // 15 character id
id idval = idStr;                   // assign to ID variable
idStr = idval;                      // back to string to prove the point
system.debug('18 char: ' + idStr);  // note that you could just append idval instead
                                    // of converting to string first

Remember that assigning an invalid id string to an ID-typed variable will throw an exception; if there's any chance that your 15 character value may not be a valid id, wrap the assignment in a try/catch block.

  • Good enough for me :) Thank you, Jason! – dino ursic Jan 30 '14 at 14:06
1

You can just type the string cast to ID. Like (Id) idStr;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.