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

SuiteScript 1.0搜索工单记录如何正确获取assemblyitem字段值

问题原因

你遇到的"An nlobjSearchColumn contains an invalid column, or is not in proper syntax: assemblyitem"报错,是因为workorder(工单)记录在SuiteScript 1.0搜索API中,对应装配件字段的合法列ID不是assemblyitem。你在工单XML结构中看到的assemblyitem是记录导出结构的节点名,和搜索接口认可的字段ID命名不一致,因此直接作为搜索列传参会触发语法错误。

修复方法

工单搜索中对应装配件的合法列ID为item,你只需要替换搜索列配置,同时在结果映射时取出该字段值即可,修正后的完整代码如下:

function getWOSoftLock() {
    var dataoutput = nlapiSearchRecord(
        'workorder',
        null,
        new nlobjSearchFilter('status', null, 'is', 'WorkOrd:B'),
        [
            new nlobjSearchColumn('tranid'),
            new nlobjSearchColumn('status'),
            // 替换错误的assemblyitem为合法列ID item
            new nlobjSearchColumn('item')
        ]
    );

    if(!dataoutput) {
        nlapiLogExecution('AUDIT', 'No released work orders');
        return [];
    }

    return dataoutput.map(function(res){
        return {
            tranid: res.getValue('tranid'),
            status: res.getValue('status'),
            // 取出装配件内部ID,用于匹配Tulip数据表记录
            assemblyItemId: res.getValue('item'),
            // 可选:如果需要同步装配件名称,可追加该行
            // assemblyItemName: res.getText('item')
        };
    });
}
注意事项
  • 如果后续需要针对装配件字段加搜索筛选条件,筛选器的字段ID同样使用item,不要使用XML中的assemblyitem节点名。
  • 不确定搜索字段ID时,可在NetSuite界面新建对应记录类型的保存搜索,添加目标字段后查看URL中col=参数的取值,即为搜索API可识别的合法字段ID,不要直接参考记录导出XML的节点命名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 09:54:22