Suitescript 2.0设置优惠券和合作伙伴代码

时间:2017-02-07 12:02:07

标签: rest netsuite suitescript

我们在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
});

2 个答案:

答案 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
        });