You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetSuite高级PDF:发货单(Item Fulfillment)自定义字段JSON数组迭代及赋值问题

解决NetSuite Advanced PDF读取发货单行JSON数组自定义字段的问题

直接用<#assign array = tranline.custcol_my_custom_if_field>无效的核心原因是:这个自定义字段返回的是JSON字符串,并非Freemarker可直接迭代的数组对象。以下是具体解决步骤及代码示例:

前提确认

先确保你的自定义字段custcol_my_custom_if_field是长文本类型(Long Text),且存储的是格式严格合规的JSON数组,示例格式如下:

[{"name": "商品A", "qty": 2}, {"name": "商品B", "qty": 1}]

正确的赋值与迭代方法

利用Freemarker的?eval指令将JSON字符串解析为可迭代数组,同时处理字段为空的情况避免报错:

<!-- 先判断字段是否存在且非空,再转换为数组 -->
<#if tranline.custcol_my_custom_if_field?has_content>
    <#assign jsonArray = tranline.custcol_my_custom_if_field?eval>
    <!-- 迭代数组中的每个对象 -->
    <#list jsonArray as item>
        <p>名称:${item.name},数量:${item.qty}</p>
    </#list>
<#else>
    <p>无附加数据</p>
</#if>

常见问题排查

  • 若?eval报错,检查JSON格式是否正确:需使用双引号、无多余逗号、括号配对完整。
  • 确认代码处于发货单行循环内:tranline对象仅在<#list record.item as tranline>这类行循环中有效,不能直接在单据头部调用。
  • 若字段存储的是单个对象而非数组,需调整逻辑(不用<#list>,直接访问对象属性即可)。

内容的提问来源于stack exchange,提问作者Morris S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:00:10