velocity script newbie - lowercase first initial

Nicholas_Manojl
Level 9

Re: velocity script newbie - lowercase first initial

It's as simple as..

#set ($x = ${lead.FirstName.toLowerCase()})

$x.charAt(0)

JD_Nelson
Level 10 - Community Advisor

Re: velocity script newbie - lowercase first initial

An error occurred when procesing the email Rendered_Email_Velocity_Error_Area_?!

Invocation of method 'charAt' in class java.lang.String threw exception java.lang.StringIndexOutOfBoundsException: String index out of range: 0 near

Screenshot 2016-07-27 07.46.05.png

and then I call the script in my email using {{my.firstinitial}}

What am I doing wrong?

(Sorry for the back and forth, I don't really have a grasp on this language yet)

Nicholas_Manojl
Level 9

Re: velocity script newbie - lowercase first initial

hmm. I think it's a bug Kenny Elkington


It works in the email preview - according to Email Scripting » Marketo Developers  anything that works in the email preview is supposed to work in an actual email, but in this case it doesn't.

Sorry.

SanfordWhiteman
Level 10 - Community Moderator

Re: velocity script newbie - lowercase first initial

pastedImage_0.png

Nicholas_Manojl
Level 9

Re: velocity script newbie - lowercase first initial

Did you try that in the preview or in the actual email send?

It still errors at my end.

SanfordWhiteman
Level 10 - Community Moderator

Re: velocity script newbie - lowercase first initial

Actual, non-sample send.

Nicholas_Manojl
Level 9

Re: velocity script newbie - lowercase first initial

Weird.. your syntax doesn't look right.

Shouldn't it contain the braces?

#set ($fi = ${lead.FirstName.toLowerCase().charAt(0)})

$fi


Even with your syntax, I'm still finding the email won't approve.

SanfordWhiteman
Level 10 - Community Moderator

Re: velocity script newbie - lowercase first initial

You don't need formal syntax in a #set directive unless there some syntactical confusion (like a reference right next to a constant string).

What's the error you're getting?

Nicholas_Manojl
Level 9

Re: velocity script newbie - lowercase first initial

Well, I was able to get it to send in an actual campaign send.

But the email won't approve and the error is:

Validation Error approving testttt.kefe

An error occurred when procesing the email Rendered_Email_Velocity_Error_Area_?!

Invocation of method 'charAt' in class java.lang.String threw exception java.lang.StringIndexOutOfBoundsException: String index out of range: 0 near

But as I'd had the email approved with my script token already included, I was able to send the test.

SanfordWhiteman
Level 10 - Community Moderator

Re: velocity script newbie - lowercase first initial

You should check the length of the string before trying to get an offset (index).