SOLVED

Velocity email script split string

Go to solution
Highlighted
Level 2

Velocity email script split string

Hi,

 

I have the following code which looks up a field in Marketo and pulls through the content, but I have an issue I am trying to start a new row when a certain delimiter "Part" pops up within the content:

 

#if(!$lead.First_5_Lines_in_Basket__c.isEmpty())
#set($First_5_Lines_in_Basket__c = $lead.First_5_Lines_in_Basket__c)
#foreach($fivelines in $First_5_Lines_in_Basket__c.split("\n"))
$fivelines
#end
#end

 

The content pulling through is for example - 

Part - 7984219, P2220 Oscilloscope Probe, Passive, 300 V Qty. - 11 Part - 2497216, ATREB215-XPRO - Expansion Board, AT86RF215 2.4GHz/Sub 1GHz Multi-Band Transceiver, IEEE 802.15.4/4g Compliant Qty. - 3

 

But would like it to split to next row when "Part" comes up within the content, so should look like as follows:

 

Part - 7984219, P2220 Oscilloscope Probe, Passive, 300 V Qty. - 11
Part - 2497216, ATREB215-XPRO - Expansion Board, AT86RF215 2.4GHz/Sub 1GHz Multi-Band Transceiver, IEEE 802.15.4/4g Compliant Qty. - 3

 

Any help would be appreciated.

 

Thanks

 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Level 10 - Community Moderator

Re: Velocity email script split string

By "split to next row" I assume you mean "Insert an HTML line break"... do try to be as as clear as possible because there's no single definition of of row and line that covers both Text and HTML.

 

If that's indeed what you mean, then find the word "Part" and prepend it with <br>.

#if( !$lead.First_5_Lines_in_Basket__c.isEmpty() )
#set( $First_5_Lines_in_Basket__c = $lead.First_5_Lines_in_Basket__c )
#foreach( $fivelines in $First_5_Lines_in_Basket__c.split("\n") )
${fivelines.replaceAll("Part","<br>Part")}
#end
#end

 

View solution in original post

4 REPLIES 4
Highlighted
Level 10 - Community Moderator

Re: Velocity email script split string

By "split to next row" I assume you mean "Insert an HTML line break"... do try to be as as clear as possible because there's no single definition of of row and line that covers both Text and HTML.

 

If that's indeed what you mean, then find the word "Part" and prepend it with <br>.

#if( !$lead.First_5_Lines_in_Basket__c.isEmpty() )
#set( $First_5_Lines_in_Basket__c = $lead.First_5_Lines_in_Basket__c )
#foreach( $fivelines in $First_5_Lines_in_Basket__c.split("\n") )
${fivelines.replaceAll("Part","<br>Part")}
#end
#end

 

View solution in original post

Highlighted
Level 2

Re: Velocity email script split string

Thanks Sanford, that has helped.

Highlighted
Level 2

Re: Velocity email script split string

Hi Sanford,

Thanks that did work but is there a way to split field $lead.First_5_Lines_in_Basket__c into 3 separate fields i.e. field 1, field 2 and field 3 which will allow me to place anywhere in an HTML table?

 

Something like below for each field

 

Field 1 = Part - 7984219,

Field 2 = P2220 Oscilloscope Probe, Passive, 300 V

Field 3 = Qty. - 11

 

At moment it pulls in as below:

 

Part - 7984219, P2220 Oscilloscope Probe, Passive, 300 V Qty. - 11

 

Thanks

Tags (1)
Highlighted
Level 10 - Community Moderator

Re: Velocity email script split string

#set( $lines = $First_5_Lines_in_Basket__c.split("\n") )

$lines is then an Array, and $lines[0], $lines[1], etc. are the individual lines.