【发布时间】:2019-12-03 01:30:13
【问题描述】:
我有一个场景,我正在复制带有自定义子记录(行)的自定义记录(正文)。
在子列表中,有一个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)
});
我已在记录中确认商品字段设置在成本项目之前。
【问题讨论】: