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

如何从NetSuite交易已保存搜索/SuiteScript搜索获取销售订单shipaddresslist值?

解决NetSuite销售订单shipaddresslist字段无法通过搜索列获取的问题

在NetSuite中,销售订单记录类型的shipaddresslist字段存储着与所选客户地址关联的内部ID,但遗憾的是该字段没有对应的搜索列,无法直接通过Saved Search或搜索API直接获取其值。不过我们可以通过SuiteScript来绕过这个限制,具体实现思路是:先遍历销售订单的搜索结果,将每个订单的内部ID传入record.load()函数加载完整记录,再从中读取shipaddresslist字段的值。

示例实现(SuiteScript 2.x)

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 */
define(['N/search', 'N/record'], function(search, record) {
    function onRequest(context) {
        // 创建销售订单搜索(可根据需求添加筛选条件)
        const salesOrderSearch = search.create({
            type: search.Type.SALES_ORDER,
            filters: [
                ['mainline', 'is', 'T'] // 仅获取主记录行
            ],
            columns: [
                'internalid',
                'tranid'
                // 注意:此处无法直接添加shipaddresslist作为搜索列
            ]
        });

        // 遍历搜索结果
        salesOrderSearch.run().each(result => {
            const soInternalId = result.getValue('internalid');
            const soTranId = result.getValue('tranid');
            
            // 加载目标销售订单记录
            const salesOrderRecord = record.load({
                type: record.Type.SALES_ORDER,
                id: soInternalId,
                isDynamic: false // 静态模式足够读取主字段
            });

            // 获取shipaddresslist字段的内部ID值
            const shipAddressListId = salesOrderRecord.getValue({
                fieldId: 'shipaddresslist'
            });

            // 此处可根据需求进行后续处理(如日志记录、数据存储等)
            log.debug('销售订单发货地址信息', {
                订单编号: soTranId,
                订单内部ID: soInternalId,
                发货地址列表内部ID: shipAddressListId
            });

            return true; // 返回true以继续遍历下一条记录
        });
    }

    return {
        onRequest: onRequest
    };
});

注意事项

  • 性能优化:如果需要处理大量销售订单,record.load()会产生一定的性能开销,建议结合搜索的分页功能(使用runPaged())进行分批处理,避免超时问题。
  • 权限配置:确保脚本拥有足够的权限来加载销售订单记录,以及读取shipaddresslist字段的权限。
  • 动态模式说明:如果需要处理动态模式下的销售订单记录,可将isDynamic参数设为true,但对于shipaddresslist这类主字段,静态模式已足够满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:41:49