Velocity Script- Addition of float field in MKTO custom Objects | Community
Skip to main content
Malay_Chakrabo1
Level 2
April 27, 2021
Solved

Velocity Script- Addition of float field in MKTO custom Objects

  • April 27, 2021
  • 1 reply
  • 1711 views

Hola Marketo community 👋

 

I had some questions on addition using velocity scripting. We're trying to send out invoices via the Marketo emails and are pushing the invoicing data in Marketo custom objects through our Datawarehouse. 

 

Thus, I wanted to understand if any accounts have multiple invoices they will be created as multiple custom object records in Marketo. So I am trying to see if we can make additions on multiple MKTO custom object records if the records match certain criteria. 

 

Please see below the script we have come up with: 

 

#set( $defaultTimeZone = $date.getTimeZone().getTimeZone("America/Denver") ) #set( $defaultLocale = $date.getLocale() ) #set( $calNow = $date.getCalendar() ) #set( $ret = $calNow.setTimeZone($defaultTimeZone) ) #set( $calConst = $field.in($calNow) ) ##Set Subscription Details via the MKTO Custom Object #set( $renewDate = $convert.parseDate(${renewalObject_cList.get(0).subscriptionEndDate},'yyyy-MM-dd') ) #set( $renewSubDate = $convert.toCalendar($renewDate) ) #set( $ISO8601DateOnly = "yyyy-MM-dd" ) #set( $ISO8601DateTime = "yyyy-MM-dd'T'HH:mm:ss" ) #set( $ISO8601DateTimeWithSpace = "yyyy-MM-dd HH:mm:ss" ) #set( $ISO8601DateTimeWithMillisUTC = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" ) ##Set Subscription Name, Status, AutoRenew via the Renewal Custom Object #set( $Subscription = ${renewalObject_cList.get(0).subscriptionName} ) #set( $Status = ${renewalObject_cList.get(0).subscriptionStatus}) #set( $AutoRenew = ${renewalObject_cList.get(0).autoRenew}) ##Set Invoice MRR via the Renewal INVOICE Object #set( $InvoiceMRR = ${renewalInvoice_cList.get(0).cALCULATEDMRR} ) #set( $ItemID = ${renewalInvoice_cList.get(0).Item_iD}) #set( $AutoRenew = ${renewalObject_cList.get(0).autoRenew}) #set( $interestingItems = [] ) #foreach( $item in $renewalInvoice_cList ) #if( $item.cALCULATEDMRR.ne("") ) #if( $item.autoRenew.equals("1") ) #set( $void = $interestingItems.add($item) ) #set( $nextRenewDate = $convert.parseDate($item.subscriptionEndDate,'yyyy-MM-dd') ) #set( $nextRenewSubDate = $convert.toCalendar($nextRenewDate) ) #if( $date.difference($calNow,$nextRenewSubDate).getDays() <= xx ) #set( $DisplayInvoiceMRR = $interestingItems.add($item.cALCULATEDMRR) ) $DisplayInvoiceMRR## #elseif( $date.difference($calNow,$nextRenewSubDate).getDays() <= yy ) #set( $DisplayInvoiceMRR = $interestingItems.add($item.cALCULATEDMRR) ) $DisplayInvoiceMRR## #end #end #end #end
This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by SanfordWhiteman

Can you add Float (Float32) fields in Velocity? Yes, using MathTool.add ($math.add). Note they will be Doubles in Velocity.

 

But should you be using Float/Currency fields at all in Marketo? No, you should only use scaled Integers or Strings to store decimal/currency data. Floats do not have sufficient precision and you will get unexpected results.

1 reply

SanfordWhiteman
SanfordWhitemanAccepted solution
Level 10
April 27, 2021

Can you add Float (Float32) fields in Velocity? Yes, using MathTool.add ($math.add). Note they will be Doubles in Velocity.

 

But should you be using Float/Currency fields at all in Marketo? No, you should only use scaled Integers or Strings to store decimal/currency data. Floats do not have sufficient precision and you will get unexpected results.