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

NetSuite客户端脚本lookupFields无响应问题排查与修复

NetSuite 2.1客户端脚本无响应问题修复方案

问题描述

需求:当customer字段输入内容时,根据record_customer_sales_person自定义记录自动更新salesman相关字段。编写的2.1版本ClientScript无响应且无错误提示。

代码问题分析及修复点

  • 客户ID获取错误:触发字段是customer,但代码错误获取custrecord_me_customer_name字段值,应直接获取customer字段的ID。
  • 硬编码查询ID:search.lookupFields中固定使用id:60,需替换为当前选中客户的ID,实现动态查询关联记录。
  • 搜索类型不合法:search.Type无内置的record_customer_sales_person类型,自定义记录需使用实际ID(通常为customrecord_xxx格式),直接传入字符串类型值。
  • 返回字段映射错误:lookupFields返回的字段需严格对应指定的columns列表,且无需重复设置custrecord_me_customer_name字段。
  • 缺失错误处理:Promise未添加catch块,导致错误无法捕获和记录,无法排查问题。

修复后的完整代码

/**
 * @NApiVersion 2.1
 * @NScriptType ClientScript
*/
define(['N/search'], 
    function (search) {

    function fieldChanged(context) {
        var currentRecord = context.currentRecord;
        var fieldId = context.fieldId;

        // 仅处理customer字段变更
        if (fieldId !== 'customer') return;
        
        // 获取当前选中的客户ID
        const customerId = currentRecord.getValue({ fieldId: 'customer' });
        if (!customerId) return;
        
        // 查找customer对应的salesperson关联记录
        // 注意:将customrecord_record_customer_sales_person替换为实际的自定义记录ID
        search.lookupFields.promise({
            type: 'customrecord_record_customer_sales_person',
            id: customerId, // 使用当前客户ID动态查询
            columns: ['custrecord_me_join_sales_person']
        }).then(function(result) {
            // 更新salesperson字段
            if (result.custrecord_me_join_sales_person) {
                currentRecord.setValue({ 
                    fieldId: 'custrecord_me_join_sales_person', 
                    value: result.custrecord_me_join_sales_person[0].value 
                });
                log.debug({ title: 'Salesperson更新成功', details: result.custrecord_me_join_sales_person[0].text });
            } else {
                log.debug({ title: '无关联记录', details: '未找到该客户对应的Salesperson' });
            }
        }).catch(function(error) {
            // 捕获并记录错误
            log.error({ title: '查询失败', details: error.message || error });
        });
    }

    return {
        fieldChanged: fieldChanged
    }

});

额外注意事项

  • 确认自定义记录类型的实际ID:进入NetSuite自定义记录列表,查看record_customer_sales_person对应的ID(通常以customrecord_开头),替换代码中的customrecord_record_customer_sales_person。
  • 确认custrecord_me_join_sales_person字段类型:如果是单值字段,访问时无需[0].value,直接使用result.custrecord_me_join_sales_person。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:50:24