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
BedrockMission!

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.

Ken_Qrious
Level 3
Level 3

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
wodnicki
Community Advisor
Community Advisor

Hi,

 

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"

 

Thanks,

-Jon

Ken_Qrious
Level 3
Level 3

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
}
else
this.timezoneName = String(this.ctx.timezone.@current)

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

if( this.timezoneName != "" )
NL.session.setTimezone(this.timezoneName);

return this.timezoneName
}

NL.WebForm.FormBase.prototype.resetTimezone = function()
{
if( String(this.ctx.userInfo.@timezone) != '' )
NL.session.setTimezone(this.ctx.userInfo.@timezone.toString());
}

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