Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Adobe Campaign Classic - Hybrid Configuration : pdf report export successful but cannot view pdf using wkhtmltopdf mode.


Level 4

Adobe Campaign Classic - Hybrid Configuration 


Since upgrading to 9032 we have been unable to export pdf files from reports (administration/config/reports). We have upgraded to 9182 but the issues still exists.


The original phantomjs mode would not created a pdf so have installed wkhtmltopdf and changed the mode.   

serverConf.xml (htmlToPdf settings set to below)
<htmlToPdf command="" maxProcessusCount="5" mode=" wkhtmltopdf" timeout="120" verbose="true" waitTime="15"/>


Now a report can be exported as a pdf but when it is viewed the following error occurs.
TypeError: can't convert AttributeName to string
{anonymous}("Pacific/Auckland")@/nl/core/formbase.js:749 _report_xxxCampaignDailySchedule__preview([object HttpServletRequest],[object HttpServletResponse])@_report_xxxCampaignDailySchedule__preview:516 ctx=%3Cctx%20_console%3D%221%22%20_context%3D%22global%22%20_debug%3D%22true%22%20_folderLink%3D%22folder%22%20_folderLinkId%3D%22%40folder-id%22%0A%20%20%20%20%20_folderModel%3D%22%22%20_format%3D%22pdf%22%20_hasFilter%3D%22false%22%20_or

1 Reply


Community Advisor



Looks like buggy code in formbase.js. Try patching the line with hardcoded value to see what it does?

-  this.timezoneName = String(this.ctx.timezone.@current)

+  this.timezoneName = "Pacific/Auckland"





Level 4

Thanks for the suggestion Jon. I tried that change but there was no difference in behavior. I've completed a bit of debugging have traced the issue to the statement marked in red, this statement uses this.timezoneName which is set at the statement marked in green.


If I set this.timezoneName to "Pacific/Auckland" at the green statement there is no change in behavior

from => this.timezoneName = strTimezone

to => this.timezoneName = "Pacific/Auckland"


If I substitute "Pacific/Auckland" for this.timezoneName in the statement in red, again there is no change in behavior.

from => NL.session.setTimezone(this.timezoneName);

to => NL.session.setTimezone("Pacific/Auckland");



/** Set the working timezone
* @strTimezone
* special case : _server_, _login_, _inherit_
* _wdbc_ (only for report) : use timezone of the db server (WdbcTimeZone option)
* or the system one if not setted
NL.WebForm.FormBase.prototype.setTimezone = function(strTimezone)
if( String(this.ctx.@_historyId) == "" )
if( strTimezone == "_wdbc_" )
this.timezoneName = getOption("WdbcTimeZone", true)
if( this.timezoneName == "" )
strTimezone = "_server_"
else if( strTimezone == "_inherit_" || strTimezone == "")
{ // default is login
strTimezone = "_login_"

if( strTimezone == "_server_" )
this.timezoneName = application.getServerTimezone()
else if( strTimezone == "_login_" )
this.timezoneName = String(this.ctx.userInfo.@timezone)
else if( strTimezone != "_wdbc_" )
this.timezoneName = strTimezone

this.ctx.timezone.@current = this.timezoneName
this.timezoneName = String(this.ctx.timezone.@current)

this.ctx.timezone.@changed = String(this.ctx.userInfo.@timezone) != this.timezoneName

if( this.timezoneName != "" )

return this.timezoneName

NL.WebForm.FormBase.prototype.resetTimezone = function()
if( String(this.ctx.userInfo.@timezone) != '' )

NL.WebForm.FormBase.prototype.getTimezoneName = function()
return this.timezoneName