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

如何用SuiteScript 2.0的load函数加载自定义记录表全部字段数据?

NetSuite 获取自定义记录全部字段数据的解决方案

情况1:加载单条指定记录并获取其所有字段数据

record.load 用于加载单条具体ID的记录,必须指定 id 参数。加载完成后,可通过 getFields() 获取所有字段ID,再遍历取值;子列表字段需单独处理:

// 替换为实际需要加载的记录ID
const targetRecordId = 123;

// 加载目标自定义记录
const rec = record.load({
    type: 'customrecord_{name}',
    id: targetRecordId,
    isDynamic: false
});

// 收集主字段数据
const recordData = {};
const allMainFields = rec.getFields();
allMainFields.forEach(fieldId => {
    recordData[fieldId] = rec.getValue({ fieldId });
});

// 收集子列表数据
const allSublists = rec.getSublists();
allSublists.forEach(sublistId => {
    const lineCount = rec.getLineCount({ sublistId });
    recordData[sublistId] = [];
    
    for (let lineIdx = 0; lineIdx < lineCount; lineIdx++) {
        const sublistFields = rec.getSublistFields({ sublistId });
        const lineData = {};
        
        sublistFields.forEach(fieldId => {
            lineData[fieldId] = rec.getSublistValue({
                sublistId,
                fieldId,
                line: lineIdx
            });
        });
        
        recordData[sublistId].push(lineData);
    }
});

// 输出结果到日志
log.debug('单条记录完整数据', recordData);

情况2:获取自定义记录类型的所有记录及字段数据

如果需要获取整个表的所有记录,不能用 record.load,需使用 search.create 执行全量搜索:

// 创建包含所有字段的搜索对象
const customRecordSearch = search.create({
    type: 'customrecord_{name}',
    columns: search.createColumn({ name: '*' }) // 选择所有字段列
});

// 执行搜索(单次最多返回1000条,超过需分页处理)
const searchResults = customRecordSearch.run().getRange({ start: 0, end: 1000 });
const allRecordsData = [];

// 遍历处理每条搜索结果
searchResults.forEach(result => {
    const recordItem = {};
    result.columns.forEach(col => {
        const fieldId = col.name;
        // 获取字段值
        recordItem[fieldId] = result.getValue(col);
        // 多选择字段额外获取显示文本
        if (col.type === search.FieldType.MULTISELECT) {
            recordItem[`${fieldId}_text`] = result.getText(col);
        }
    });
    allRecordsData.push(recordItem);
});

// 输出结果到日志
log.debug('所有记录完整数据', allRecordsData);

关键注意事项

  • record.load 必须传入 id 参数,否则会抛出错误,它仅用于加载单条特定记录
  • 搜索时使用 name: '*' 可获取绝大多数字段,但部分系统隐藏字段可能需要手动指定列
  • 搜索结果单次最大返回1000条,若记录总数超过1000,需循环调用 getRange 分页获取
  • 子列表字段无法通过 getFields() 获取,必须用 getSublists() 单独处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:55:28