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

NetSuite为发票和现金销售单添加配送邮编对应郡县字段

需求说明
  • 目标:在所有发票、现金销售单上添加配送地址邮编对应的郡县信息,满足后续报表数据提取要求
  • 已完成准备:创建ID为custbodysales_order_county的自由文本类型自定义主体字段,用于存储郡县值
  • 方案约束:
    • 禁止直接从客户主记录取郡县值:单笔订单修改配送地址时,客户主记录存储的郡县信息不会同步更新,会导致数据错误
    • 现有客户记录端的地址匹配逻辑可复用,但其中经纬度写入的相关逻辑本次不需要,直接剥离即可
实现思路
  • 采用用户事件脚本,在发票、现金销售单保存前实时读取当前交易上实际生效的配送邮编,直接匹配邮编映射表取郡县值写入自定义字段,完全绕开客户主数据不同步的问题
  • 复用现有代码中邮编匹配customrecord_zip_code_map自定义表的核心逻辑,删除所有地理编码、经纬度写入的无关代码,减少不必要的性能消耗
  • 触发时机覆盖新建、编辑两种操作,保证订单创建后修改配送地址时,郡县值能同步更新
可直接部署的代码
/**
 * 交易记录自动匹配配送地址对应郡县
 * 适用记录:发票、现金销售单
 * 触发时机:beforeSubmit(保存前)
 * API版本:SuiteScript 1.0(和现有系统代码版本一致)
 */
function setTransactionShipCounty() {
    try {
        // 直接读取当前交易上的配送邮编,不读取客户主数据地址
        var currentShipZip = nlapiGetFieldValue('shipzip');
        // 邮编为空时清空郡县字段,避免残留旧值
        if (!currentShipZip) {
            nlapiSetFieldValue('custbodysales_order_county', '');
            return true;
        }

        // 复用现有邮编匹配逻辑,仅查询需要的郡县字段
        var searchFilters = [new nlobjSearchFilter('name', null, 'is', currentShipZip)];
        var searchColumns = [
            new nlobjSearchColumn('custrecord_county_full_name', 'custrecord_zip_code_map_county')
        ];
        var matchResults = nlapiSearchRecord('customrecord_zip_code_map', null, searchFilters, searchColumns);

        if (matchResults && matchResults.length > 0) {
            var matchedCounty = matchResults[0].getValue('custrecord_county_full_name', 'custrecord_zip_code_map_county');
            nlapiSetFieldValue('custbodysales_order_county', matchedCounty);
        } else {
            // 未匹配到邮编对应郡县时留空,可根据业务需要调整默认值
            nlapiSetFieldValue('custbodysales_order_county', '');
        }
    } catch (err) {
        // 匹配异常时记录日志,不阻断正常交易保存
        nlapiLogExecution('ERROR', '配送地址郡县匹配失败', '错误信息:' + err.message);
    }
    return true;
}
部署操作要点
  • 新建脚本文件上传上述代码后,脚本类型选择用户事件脚本(User Event Script),API版本选择1.0
  • 脚本部署时,适用记录类型同时勾选「发票」「现金销售单」,触发事件勾选「创建」「编辑」
  • 部署完成后先做测试:新建一笔现金销售单/发票填写配送地址保存,检查custbodysales_order_county字段是否正确带出郡县值;再修改该笔交易的配送地址邮编重新保存,确认字段值同步更新,不存在旧值残留
  • 不需要迁移原有客户记录上的经纬度、销售代表自动赋值逻辑,该脚本仅处理交易侧的郡县字段赋值,无额外外部接口调用,对系统性能无明显影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:09:33