javascript - Netsuite:如何通过链接的客户端脚本修改 SuiteLet 子列表?
问题描述
我有一个带有空子列表的 SuiteLet。SuiteLet 上的按钮指向试图填充子列表的客户端脚本。我的客户端脚本遇到了一个奇怪的错误——“未定义不是对象(正在评估‘olddata[i]’)。”这是一个 JavaScript 错误,我相信在下面的代码中指的是“rec”。错误在“rec.commitLine”上启动。
function populateSublist(fieldValues, rec, availableItems) {
log.debug("Rec", rec);
if (availableItems[0]) {
for (i = 0; i < availableItems.length; i++) {
try {
rec.selectNewLine({
sublistId: 'custpage_items_sublist'
});
rec.setCurrentSublistValue({
sublistId: 'custpage_items_sublist',
fieldId: 'custpage_parent_frame',
value: availableItems[0].item_parent_frame
});
// More values being set...
rec.commitLine({ // <=== *** RIGHT HERE ***
sublistId: 'custpage_items_sublist'
});
} catch (e) {
log.error("Unable to commit line - " + e.name, e.message);
}
}
} else {
log.debug("No available items for given parameters.")
}
以下是我知道的一些事情:
- “rec”之前正在工作并获取我需要的字段名称。
- "rec" 在我的执行日志中显示 "{"id":"","type":null,"isDynamic":true}"。
- 我的客户端脚本的开头
var rec = cr.get();
用于接收记录。
是否可以从客户端脚本修改 SuiteLet 子列表?我以前从未特别这样做过,所以我在这里不知所措。非常感谢任何帮助或想法!谢谢!
解决方案
我们最近能够解决这个问题。此问题是由于将 SuiteLet 子列表定义为 SublistType.LIST。NetSuite 不支持在服务器端脚本之外编辑定义为“LIST”的子列表。因此,我们在尝试通过客户端脚本编辑它时遇到了这个奇怪的错误。
两种可能的解决方案是:
将 SuiteList SublistType 更改为“INLINEEDITOR”。将子列表编辑移至服务器端 (SuiteLet)。
谢谢!也许这至少会在将来帮助某人。
推荐阅读
- r - 使用 purrr 时如何定位错误和调试
- html - 带有长文本的 CSS 气泡对话丢失格式
- bash - 如何从脚本中调用脚本
- angular - Angular 谷歌地图不适用于路由器插座
- mongodb - 使用jmeter根据条件从mongo数据库中删除记录
- python - 键盘快捷键使 tkinter 条目小部件跳转到前面
- angular - 带有自定义 --base-href 和 Nginx 路由的 Angular SPA
- python-3.x - 如何显示从 A 点到 D 点的路线,避免多边形而不与它们相交?
- jenkins - Jenkins 配置为代码插件 (JCasC) 的参数化构建语法
- bokeh - 散景垂直对齐控件