NetSuite邮件模板子公司Logo脚本报错问题咨询
NetSuite邮件模板Logo调用脚本错误修复方案
原代码因FreeMarker语法错误导致运行报错,核心问题是空值判断与长度判断的语法使用错误,以下是具体修复方案:
错误原因分析
- 原代码中
subsidiary.logo??length != 0属于语法误用:FreeMarker中??用于判断对象是否存在,?length用于获取长度,两者不能直接连写 - 当
subsidiary.logo不存在时,直接访问?length会触发空对象属性访问错误
修复后的代码
<#if subsidiary.logo?? && subsidiary.logo?length != 0> <img src="${subsidiary.logo@url}" style="float: left; margin: 7px"/> <#else> <#if companyInformation.logoUrl?? && companyInformation.logoUrl?trim?length != 0> <img src="${companyInformation.logoUrl}" style="float: left; margin: 7px" /> </#if> </#if>
关键修改点
- 先通过
subsidiary.logo??判断子公司Logo对象是否存在,避免空对象访问报错 - 使用
&&逻辑运算符,确保只有对象存在时才执行长度判断 - 对
companyInformation.logoUrl增加?trim处理,排除空格组成的空字符串情况,提升判断准确性
简化版本(可选)
如果subsidiary.logo为文件对象,仅判断对象是否存在即可,无需额外检查长度:
<#if subsidiary.logo??> <img src="${subsidiary.logo@url}" style="float: left; margin: 7px"/> <#elseif companyInformation.logoUrl?? && companyInformation.logoUrl?trim?length != 0> <img src="${companyInformation.logoUrl}" style="float: left; margin: 7px" /> </#if>
内容的提问来源于stack exchange,提问作者paoxxi
相关产品推荐
相关产品推荐

