netsuite - SuiteScript 2.0 record.setCurrentSublistValue 过滤字段问题
问题描述
我有一个场景,我正在复制带有自定义子记录(行)的自定义记录(正文)。
在子列表中,有一个commodity
字段,后跟一个costitem
字段。两者都是列表/记录类型。
成本项目列表/记录上有一个commodity
在子列表中过滤的字段,因此我们只能输入commodity
值匹配的成本项目。
身体记录被创建为动态的。
该commodity
字段是在成本项目字段之前在子列表中设置的,并且我已经验证了costitem
我正在设置的是否具有正确的匹配commodity
值。(通过在 UI 中手动输入数据来模拟)。
但是,我得到了一个无效的字段参考costitem
。
当我从costitem
字段定义中删除过滤器时,它很有魅力。
因此,问题是当必须首先设置另一个字段时,我们如何设置子列表值。
我目前正在使用的代码:
var sourceLineCount = sourceRec.getLineCount({sublistId:'recmachcustrecordcpqx_line_parent'});
var lineFields = ['custrecordcpqx_commodity','custrecordcpqx_costitem'];
for (var sourceLine = 0; sourceLine < sourceLineCount; sourceLine++) {
newLineRecord.selectNewLine({sublistId:'recmachcustrecordcpqx_line_parent'});
lineFields.forEach(function(field){
newLineRecord.setCurrentSublistValue({
sublistId: 'recmachcustrecordcpqx_line_parent',
fieldId: field,
value: sourceRec.getSublistValue({
sublistId: 'recmachcustrecordcpqx_line_parent',
fieldId: field,
line: sourceLine,
}),
});
});
newLineRecord.commitLine({sublistId:'recmachcustrecordcpqx_line_parent'});
}
console.log('['+script.getRemainingUsage()+']','About to save')
newLineRecord.save({enableSourcing:true});
console.log('['+script.getRemainingUsage()+']','New CPQ Line Created: '+newLineRecordId)
});
我已经在日志中确认商品字段设置在成本项目之前。
解决方案
将此问题提交给 NetSuite 支持后,似乎存在缺陷。
推荐阅读
- java - 无法在 Spring Boot 中保留 MEDIUMTEXT 类型字段
- amazon-web-services - 使用多存储库架构的端到端测试构建 CICD
- hibernate - 带有额外列的 JPA 2.0 多对多 - 更新集合
- reactjs - 流量 | 还原 | 无法通过 StateProps 和 DispatchProps 连接函数
- java - 如何从具有特定首字母的字符串中打印出一个单词?
- python - 在 for 语句中使用 concurrent.futures
- python-3.x - 在 Python 中使用 unittest.mock 模拟 os.remove
- angular - Angular 8 - 在其他调用它的组件上调用共享组件两次
- r - (R,RStudio)Tidyverse 不会加载 - '没有这样的文件或目录'
- angular - Angular如何在http post中定义多个观察