在 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 中需要打开/关闭的功能或设置有关。非常感谢任何反馈。
最佳答案
导致错误的原因是我在继续添加子列表项之前没有设置“实体”字段。因此,错误实际上并不是项目 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
})
关于javascript - SuiteScript 中的 ID 字段抛出 INVALID_FLD_VALUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212976/