2

我有一个用于发票记录 (newRecord) 的用户事件脚本,存储为var record. 在沙盒和我使用的浏览器控制台中record.getSublistFields('sublist_name'),它一直有效。

我们刚刚将用户事件脚本从沙盒移植到生产getSublistFields('sublist_name')环境,尽管脚本没有更改,但突然无法在脚本上下文中工作。使用控制台,该方法仍然可以正常工作。

这是调试器的几行代码-

$ record.getLineCount('item')
> 2
$ record.getSublistFields('item')
>
$ record.getSublistFields()
>     {"type":"error.SuiteScriptError","name":"SSS_MISSING_REQD_ARGUMENT","message":"DeferredDynamicRecord.getSublistFields: Missing a required argument: sublistId","stack":["<anonymous>(N/record/recordService.js)","<anonymous>()","buildBodyData(usereventscript.js$72$debugger.user:118)","buildData(usereventscript.js$72$debugger.user:74)","_put(usereventscript.js$72$debugger.user:37)","_afterSubmit(usereventscript.js$72$debugger.user:14)","<anonymous>(usereventscript.js$72$debugger.wrap:18)","<anonymous>(usereventscript.js$72$debugger.wrap:12)","<anonymous>(usereventscript.js$72$debugger.wrap:24)","<anonymous>(usereventscript.js$72$debugger.wrap:1)"],"cause":{"type":"internal error","code":"SSS_MISSING_REQD_ARGUMENT","details":"DeferredDynamicRecord.getSublistFields: Missing a required argument: sublistId","userEvent":"aftersubmit","stackTrace":["<anonymous>(N/record/recordService.js)","<anonymous>()","buildBodyData(usereventscript.js$72$debugger.user:118)","buildData(usereventscript.js$72$debugger.user:74)","_put(usereventscript.js$72$debugger.user:37)","_afterSubmit(usereventscript.js$72$debugger.user:14)","<anonymous>(usereventscript.js$72$debugger.wrap:18)","<anonymous>(usereventscript.js$72$debugger.wrap:12)","<anonymous>(usereventscript.js$72$debugger.wrap:24)","<anonymous>(usereventscript.js$72$debugger.wrap:1)"],"notifyOff":false},"id":"","notifyOff":false} (SYSTEM_LIBS$debugger.sys#3387)

具体来说,这是一个 Invoice 记录,从调试器代码中可以看出,其他常规 SuiteScript 2.0 命令运行良好。

在此先感谢您的帮助!如果我可以提供任何其他信息,请告诉我。

4

2 回答 2

1

感谢萨尔曼的回复!我在 2.0 中工作,正如您在相关代码之前和之后的其他 2.0 代码中看到的那样。

我联系了 Netsuite 支持,他们告诉我这实际上是一个已知错误。据说它将在 2017.2 版本中修复。

与此同时,我通过调用getSublistFieldsoldRecord 对象来“破解”它。

于 2017-10-11T16:17:54.190 回答
-1

确保您使用的是 SuiteScript 2.0,因此您必须加载记录模块(N/record)才能使用 NetSuite 记录。试试下面的代码。

var field = record.getSublistFields({
sublistId: 'item'
});
于 2017-10-10T07:58:46.897 回答