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
Views
Replies
Total Likes
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
Views
Replies
Total Likes
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
}
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies