首页 > 解决方案 > 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)
    });

我已经在日志中确认商品字段设置成本项目之前。

在此处输入图像描述

标签: netsuitesuitescript2.0

解决方案


将此问题提交给 NetSuite 支持后,似乎存在缺陷。


推荐阅读