Expand my Community achievements bar.

Announcing the launch of new sub-community for Campaign Web UI to cater specifically to the needs of Campaign Web UI users!

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

2 Replies


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