我们在netsuite环境中创建了一个套脚本2.0脚本。我们正在使用RESTlet来访问它。
我们的脚本会创建包含各种字段的销售订单。它工作正常,但我们无法设置优惠券代码值或合作伙伴代码,我们得到两个相同的错误。我们正在使用内部ID,我们也尝试了优惠券代码。
有什么想法吗?
错误:
{
"type":"error.SuiteScriptError",
"name":"INVALID_FLD_VALUE",
"message":"You have entered an Invalid Field Value 18 for the following field: couponcode",
"stack":[
"<anonymous>(N/record/recordService.js)",
"setSalesOrderData(adhoc$-1$debugger.user:71)",
"saveSaleOrder(adhoc$-1$debugger.user:17)",
"<anonymous>(adhoc$-1$debugger.user:107)",
"<anonymous>(adhoc$-1$debugger.user:6)"
],
"cause":{
"type":"internal error",
"code":"INVALID_FLD_VALUE",
"details":"You have entered an Invalid Field Value 18 for the following field: couponcode",
"userEvent":null,
"stackTrace":[
"<anonymous>(N/record/recordService.js)",
"setSalesOrderData(adhoc$-1$debugger.user:71)",
"saveSaleOrder(adhoc$-1$debugger.user:17)",
"<anonymous>(adhoc$-1$debugger.user:107)",
"<anonymous>(adhoc$-1$debugger.user:6)"
],
"notifyOff":false},"id":"","notifyOff":false
}
}
RESTlet代码:
var objRecord = record.create({
type: record.Type.SALES_ORDER,
isDynamic: true
});
/* add other values.....*/
objRecord.setValue({ fieldId: 'couponcode', value: 538 });
var recordId = objRecord.save({
enableSourcing: false,
ignoreMandatoryFields: false
});
答案 0 :(得分:1)
您是否尝试使用这些优惠券代码设置一次性使用代码?或者他们是否与促销相关联?
您在couponcode
字段中使用了哪个内部ID?
您是否也可以共享RESTlet代码的相关部分?
我在销售订单的控制台(即客户端脚本)中测试了以下内容,似乎正确设置了促销和优惠券代码:
require(["N/currentRecord"], function(c) {
c.get().setValue({
"fieldId": "couponcode",
"value": 1
});
});
其中1
是促销的内部ID。如果我使用与促销无关的内部ID,则不会出现任何错误,但不会在任何一个字段中填充任何内容。
答案 1 :(得分:0)
我们终于得到了Netsuite支持的工作代码,因为在线这个主题有这么少的帮助,我在这里分享。我们在自己的脚本中抓取了我们需要的内容,但这个基本的脚本也适用,
来自netsuite支持代理:
我创建了一个简单的SuiteScript 2.0代码,用于将值输入合作伙伴字段(ID:&#39;合作伙伴&#39;)和优惠券代码(ID:&#39;优惠券代码&#39;)。两个字段都是下拉字段而不是多字段字段。 字段优惠券代码取决于促销字段,这就是为什么我们应该在&#39; promocode&#39;中输入价值的原因。字段而不是&#39;优惠券代码&#39;。
/**
*@NApiVersion 2.x
*@NScriptType usereventscript
*/
define(['N/record'],
function(record) {
function AfterSubmit(context) {
var result = record.load({
type: 'salesorder',
id: 71040,
isDynamic: true
});
result.setValue ({
fieldId : 'partner',
value : 45140
});
result.setValue ({
fieldId : 'couponcode',
value : 'AMARILLO16'
});
result.save({
enableSourcing : false,
ignoreMandatoryFields : true
});
return true;
}
return {
afterSubmit: AfterSubmit
};
});
我们必须做一次修改才能为我们工作:
result.setValue ({
fieldId : 'partner',
value : 45140
});
result.setText ({
fieldId : 'couponcode',
text : 'AMARILLO16'
});
result.save({
enableSourcing : false,
ignoreMandatoryFields : true
});