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

如何使用SuiteScript 2获取NetSuite记录类型的字段ID与名称?

使用SuiteScript 2获取记录类型的所有字段ID与名称

完全可以通过SuiteScript 2.x实现这个需求,下面针对你提到的自定义记录保存后获取关联客户记录的所有字段ID和名称场景,提供两种实用方案:

方案1:基于N/record模块(需加载具体记录)

这种方式需要先加载目标客户记录,通过getFields()获取所有字段ID,再逐个调用getLabel()获取字段名称,适合需要结合具体记录数据的场景。

示例代码(自定义记录的afterSubmit脚本):

/**
 * @NApiVersion 2.x
 * @NScriptType UserEventScript
 */
define(['N/record'], function(record) {
    function afterSubmit(context) {
        if (context.type !== context.UserEventType.CREATE && context.type !== context.UserEventType.EDIT) {
            return;
        }

        // 获取当前自定义记录
        const customRec = context.newRecord;
        // 替换为你的自定义客户字段ID
        const customerId = customRec.getValue({ fieldId: 'custrecord_customer_link' });
        
        if (!customerId) return;

        // 加载客户记录
        const customerRec = record.load({
            type: record.Type.CUSTOMER,
            id: customerId,
            isDynamic: false
        });

        // 获取所有字段ID
        const fieldIds = customerRec.getFields();
        const fieldMap = [];

        // 循环获取每个字段的名称并整理
        fieldIds.forEach(fieldId => {
            const fieldLabel = customerRec.getLabel({ fieldId: fieldId });
            fieldMap.push({
                fieldId: fieldId,
                fieldName: fieldLabel
            });
        });

        // 输出结果(可根据需求存入日志、自定义记录或其他操作)
        log.debug('客户字段列表', fieldMap);
    }

    return {
        afterSubmit: afterSubmit
    };
});

方案2:基于N/metadata模块(无需加载具体记录)

如果只需要获取客户记录类型本身的所有字段元数据(不需要具体记录的数据),可以使用N/metadata模块直接获取记录类型的字段定义,效率更高。

示例代码:

/**
 * @NApiVersion 2.x
 * @NScriptType UserEventScript
 */
define(['N/metadata', 'N/log'], function(metadata, log) {
    function afterSubmit(context) {
        if (context.type !== context.UserEventType.CREATE && context.type !== context.UserEventType.EDIT) {
            return;
        }

        // 获取客户记录类型的元数据
        const customerMetadata = metadata.get({
            type: metadata.Type.CUSTOMER
        });

        const fieldMap = [];
        // 遍历所有字段定义
        customerMetadata.fields.forEach(field => {
            fieldMap.push({
                fieldId: field.id,
                fieldName: field.label
            });
        });

        // 输出结果
        log.debug('客户记录类型所有字段', fieldMap);
    }

    return {
        afterSubmit: afterSubmit
    };
});

注意事项

  • 替换代码中的自定义字段ID(custrecord_customer_link)为你实际使用的字段ID;
  • 部分系统字段可能没有显示名称,getLabel()会返回字段ID本身;
  • 权限控制:确保脚本的执行角色拥有客户记录的查看权限,以及N/metadata模块的使用权限(如需方案2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:22:17