为什么,当我尝试创建库存调整时,我收到错误:
您为以下字段输入了无效字段值12112:customer
我可以确认该客户实体ID是有效的,并且它们是正确子公司的一部分。
任何想法到底出了什么问题以及如何创建简单的库存调整?
require(['N/ui/serverWidget',
'N/email',
'N/runtime',
'N/search',
'N/file',
'N/config',
'N/format',
'N/record',
'N/log',
'N/runtime'],
function(ui, email, runtime, search, file, config, format, record, log, runtime) {
// Attempt to create an IA
var ia = record.create({
type: record.Type.INVENTORY_ADJUSTMENT,
isDynamic: true
});
// Set IA fields
var values = {
// 'entity': '12112', // Dummy customer
'customer': '12112',
'subsidiary': '2',
'account': '307',
'class': '36',
//'adjlocation': '2'
};
for (var key in values) {
ia.setValue({
fieldId: key,
value: values[key]
});
}
// Set IA Inventory sublist fields/lines
var line1 = {
'item': '61',
'location': '1',
'adjustqtyby': '-1',
'department': '3',
'class': '36',
};
ia.selectNewLine({
sublistId: 'inventory'
});
for (var field in line1) {
ia.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: field,
value: line1[field]
});
}
ia.commitLine({
sublistId: 'inventory'
});
var recordId = ia.save({
enableSourcing: false,
ignoreMandatoryFields: false
});
var x = 0; // Add breakpoint for NS Debugger
});
答案 0 :(得分:1)
您正在"动态"创建记录模式,因此您需要以与在UI中相同的顺序设置字段。特别是,您需要先选择subsidiary
,然后才能设置customer
字段。
交换这两行的这些顺序很可能会解决你的错误。
var values = {
// 'entity': '12112', // Dummy customer
'subsidiary': '2',
'customer': '12112',
'account': '307',
'class': '36',
//'adjlocation': '2'
};
然而,请注意for..in
does not guarantee它将遵循任何特定的顺序,因此理论上NetSuite可以在任何时候推送更新到他们的JavaScript引擎,以便以不同的方式排序并破坏您的代码。