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

NetSuite发票模块获取行项目description并更新term字段方法咨询

NetSuite发票行字段条件更新实现方案

方案1:后台自动更新(SuiteScript 2.x 用户事件脚本)

适用所有发票保存场景:前端编辑保存、CSV导入、接口创建发票时都会自动触发,无需人工操作。
触发时机选择beforeSubmit,修改字段后无需额外调用保存方法,性能最优。
代码示例:

/**
 * @NApiVersion 2.x
 * @NScriptType UserEventScript
 * @NModuleScope SameAccount
 */
define(['N/record'], function(record) {
    function beforeSubmit(context) {
        const invoiceRec = context.newRecord;
        // 获取item子列表总行数
        const lineCount = invoiceRec.getLineCount({
            sublistId: 'item'
        });

        for (let i = 0; i < lineCount; i++) {
            // 读取当前行description值,为空时默认赋值空字符串避免报错
            const desc = invoiceRec.getSublistValue({
                sublistId: 'item',
                fieldId: 'description',
                line: i
            }) || '';
            // 转小写判断,兼容大小写不同的Tax写法
            if (desc.toLowerCase().includes('tax')) {
                invoiceRec.setSublistValue({
                    sublistId: 'item',
                    fieldId: 'term',
                    line: i,
                    value: 'Taxable term'
                });
            }
        }
    }

    return {
        beforeSubmit: beforeSubmit
    };
});

部署说明:脚本部署时「应用到」选择Invoice,触发阶段勾选Before Submit即可。

方案2:前端编辑实时更新(SuiteScript 2.x 客户端脚本)

适合用户在前端编辑发票时,修改行项目description后立刻自动更新term字段,实时可见效果。
代码示例:

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
define([], function() {
    function fieldChanged(context) {
        const currentRec = context.currentRecord;
        // 仅监听item子列表的description字段修改事件
        if (context.sublistId !== 'item' || context.fieldId !== 'description') return;

        const desc = currentRec.getCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'description'
        }) || '';

        if (desc.toLowerCase().includes('tax')) {
            currentRec.setCurrentSublistValue({
                sublistId: 'item',
                fieldId: 'term',
                value: 'Taxable term'
            });
        }
    }

    return {
        fieldChanged: fieldChanged
    };
});

部署说明:脚本部署时「应用到」选择Invoice,勾选「编辑」状态即可。

注意事项

  • 提前在NetSuite后台确认对应字段的ID,如果是自定义字段需要替换代码中的description和term为你实际的字段ID
  • 如果需要严格区分大小写匹配,删掉toLowerCase()方法即可
  • 行项目子列表ID如果不是默认的item,要替换为你实际使用的子列表ID

内容的提问来源于stack exchange,提问作者NooB Gamer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:12:02