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

NetSuite创建库存副本时获取原记录ID为空问题求助

问题分析与解决方案

核心问题

在NetSuite UserEventScript的CREATE事件中,context.oldRecord本身就是null——因为CREATE事件对应全新记录的创建,不存在旧记录上下文。你通过复制原物料生成副本的操作,原物料的信息不会通过oldRecord传递,而是隐藏在请求的URL参数中。

修正方案

通过解析当前请求的URL参数获取原物料ID,再完成后续逻辑:

修改后的代码

/**
*@NApiVersion 2.0
*@NScriptType UserEventScript
*/
define(["N/url", "N/record", "N/runtime"], function (url, record, runtime) {
    function afterSubmit(context){
        var newRecord = context.newRecord;
        var eventType = context.type;
        var itemName = newRecord.getValue({fieldId:'itemid'});
        var isCopy = newRecord.getValue({fieldId:'custitem17'});

        // 仅处理CREATE事件,且是标记为副本的记录
        if(eventType !== context.UserEventType.CREATE || !isCopy) return;

        // 从URL参数中获取原物料的source ID
        var currentUrl = runtime.getCurrentScript().getParameter({name: 'currentUrl'});
        var urlParams = url.parse({url: currentUrl, parseQuery: true});
        var sourceItemId = urlParams.query.source;

        if(!sourceItemId) return;

        // 验证新物料名称是否以"-c"结尾
        var sourceRecord = record.load({type: newRecord.type, id: sourceItemId});
        var sourceItemName = sourceRecord.getValue({fieldId: 'itemid'});
        if(itemName === sourceItemName + '-c'){
            // 将原物料ID填入指定字段(若需原物料名称,替换为sourceItemName)
            record.submitFields({
                type: newRecord.type,
                id: newRecord.id,
                values:{custitem_item_link: sourceItemId}
            });
        }
    }
    return{
        afterSubmit:afterSubmit
    } 
});

关键修改点

  • 移除context.oldRecord依赖:改用NetSuite复制记录时默认携带的URL参数source获取原物料ID
  • 修正语法错误:将条件判断中的赋值操作=改为相等比较===,修复逻辑判断的语法问题
  • 优化流程逻辑:提前过滤不符合条件的事件和记录,避免无效执行
  • 明确字段赋值:如果custitem_item_link字段需要原物料的内部ID,直接用sourceItemId;若需要原物料的名称itemid,则替换为sourceItemName

额外注意事项

  • 脚本部署时需勾选在复制时执行选项
  • 确保脚本拥有加载物料记录、提交字段更新的权限

内容的提问来源于stack exchange,提问作者Abdul bazith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:01:13