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
我需要更新入库货件条目的子列表 ('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