SuiteScript 2.1动态模式创建Sales Order调试器报错,发布后正常
SuiteScript 2.1动态模式创建Sales Order在调试器中报错的问题
问题情况
- 使用SuiteScript 2.1以动态模式调用
record.create()创建Sales Order时,在Script Debugger中触发TypeError: r is not a function错误 - 测试代码:
require(['N/currency', 'N/record', 'N/search'], function (currency, record, search) { var salesOrder = record.create({ type: record.Type.SALES_ORDER, isDynamic: true }) })
- 错误提示:
Exception: TypeError TypeError: r is not a function
- 特殊表现:SuiteScript 2.0环境、标准模式下运行完全正常,脚本发布后也能正常执行
社区反馈与原因推测
这是NetSuite Script Debugger针对SuiteScript 2.1动态模式的已知兼容bug,不少开发者都遇到过。本质是调试器在处理2.1版本动态模式的record模块调用时,内部封装逻辑出现异常,和代码语法、业务配置无关。
临时处理方案
- 调试时暂时切换到标准模式(将
isDynamic设为false),调试完成后再改回动态模式发布 - 如果无需调试核心逻辑,直接将脚本发布到沙盒环境进行测试验证
- 检查NetSuite是否推送了调试器更新补丁,部分新版本修复了这类兼容性问题
- 调试时精简代码,比如移除示例中未用到的
N/currency和N/search模块,减少调试器的解析负担
内容的提问来源于stack exchange,提问作者Tony Forester
相关产品推荐
相关产品推荐

