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
Solved! Go to Solution.
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.
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.