【问题标题】:Id field throwing INVALID_FLD_VALUE in SuiteScriptid 字段在 SuiteScript 中抛出 INVALID_FLD_VALUE
【发布时间】:2020-09-12 06:27:11
【问题描述】:

在 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 中需要打开/关闭的功能或设置有关。非常感谢任何反馈。

【问题讨论】:

  • 尝试丢失insertLine() 呼叫。我的怀疑是,通过首先调用它,您将插入一个新行并填写它,将索引 1 处的原始行留空。
  • 感谢您的反馈,不幸的是,这并没有起到作用。我仍然看到 {"type":"error.SuiteScriptError","name":"INVALID_FLD_VALUE","message":"您为以下字段输入了无效字段值 15:item"
  • 15 可能不是您正在使用的交易和子公司的有效 ID。
  • 我通过转到库存项目并点击视图获得了 15 的值,即内部 ID 下的值。我应该使用其他 Id 字段吗?
  • 这是正确的方法,但您不能将特定项目添加到事务中可能有不同的原因。我不确定它可能是什么,可能是子公司不匹配的任何东西。

标签: javascript netsuite suitescript2.0


【解决方案1】:

错误是因为我在继续添加子列表项之前没有设置“实体”字段。所以错误实际上不是项目 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
            })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多