在Suitescript中创建新的销售订单并设置商品的子列表值时,将引发INVALID_FLD_VALUE错误。
我传递的值是项目的内部ID,我尝试使用多个项目的内部ID(带引号和不带引号)并收到相同的错误。代码在
下面/**
* @NApiVersion 2.0
* @NScriptType Restlet
* @NModuleScope SameAccount
*/
define(['N/record'], function (r) {
function get(context) {
try {
// Create new record type of SALES_ORDER
var salesOrder = r.create({
type: r.Type.SALES_ORDER,
isDynamic: false,
defaultValues: null
})
// CREATE AN ITEM AND SET VALUES
salesOrder.insertLine({
sublistId: 'item',
line: 0
});
// Item Intetrnal ID
salesOrder.setSublistValue({
sublistId: 'item',
fieldId: 'item',
line: 0,
value: '15'
});
// Quantity
salesOrder.setSublistValue({
sublistId: 'item',
fieldId: 'quantity',
line: 0,
value: 4
});
salesOrder.save();
return JSON.stringify('Sales Order Created');
}
catch (err) {
log.audit({
title:'Error',
details: err
})
return JSON.stringify(err);
}
}
return {
get: get
}
})
我已经看到用此代码编写的教程几乎一行一行,这让我想知道这是否与需要打开/关闭的NetSuite中的功能或设置有关。任何反馈都将不胜感激。
答案 0 :(得分:0)
引起该错误的原因是,在继续添加子列表项之前,我没有设置“实体”字段。因此,错误实际上并非由商品ID值引起的。
有效的代码:
var salesOrder = r.create({
type: r.Type.SALES_ORDER,
isDynamic: true,
defaultValues: Date.now().toString
}).setValue({
fieldId: "entity",
value: customer
})
salesOrder.selectNewLine({ sublistId: "item" });
salesOrder.setCurrentSublistValue({
sublistId: "item",
fieldId: "item",
value: itemId
});
salesOrder.setCurrentSublistValue({
sublistId: "item",
fieldId: "quantity",
value: 5
});
salesOrder.commitLine({ sublistId: "item" });
salesOrder.save({
enableSourcing: true,
ignoreMandatoryFields: true
})