Netsuite - Suitescript 2.X:入库货件 "items" 子列表更新

Netsuite - Suitescript 2.X: Inbound shipment "items" sublist update

我需要更新入库货件条目的子列表 ('items') 字段 ('receivinglocation')。 当我从用户界面创建入站货件时,我需要更新正文字段 ('customlocation') 中的所有项目行位置。 我试图通过客户端脚本来做到这一点:

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
define(['N/currentRecord'],
/**
 * @param{currentRecord} currentRecord
 */
function(currentRecord) {
    
    /**
     * Validation function to be executed when record is saved.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @returns {boolean} Return true if record is valid
     *
     * @since 2015.2
     */
    function saveRecord(scriptContext) {

        try {
            var lines = scriptContext.currentRecord.getLineCount({sublistId: 'items'});
            var mainLocationValue = scriptContext.currentRecord.getValue({
                fieldId: 'customlocation'
            });
            if (mainLocationValue != '' && mainLocationValue != null) {
                for (var i=0; i<lines; i++){
                    scriptContext.currentRecord.selectLine({sublistId: 'items',line: i});
                    scriptContext.currentRecord.setCurrentSublistValue({sublistId: 'items',fieldId: 'receivinglocation',value: mainLocationValue,ignoreFieldChange: true});
                    scriptContext.currentRecord.commitLine({sublistId: 'items'});
                }
            }
        }
        catch (e) {
                    log.debug({
                        title: 'Error Details',
                        details: e
                    })
        }
    }

    return {
        saveRecord: saveRecord
    };
    
});

但是验证表单的错误总是一样的: "FAILED_FORM_VALIDATION" - "表单验证失败。您不能提交此记录"

不确定这是否是您的错误来源,但您必须从 saveRecord() 函数中 return true 以允许 NetSuite 保存记录。您可以直接在您发布的脚本的 JSDoc 部分中看到对此效果的注释:

@returns {boolean} Return true if record is valid