如何在NetSuite的“ beforeSubmit”函数中找到行ID?

时间:2019-03-18 05:33:59

标签: javascript database dom netsuite suitescript2.0

有一个自定义的交易行字段,其名称为“ custcol_so_line_id”。其值应与子列表行的ID相同。

代码如下:

function beforeSubmit(context) {

    var rec = context.newRecord;

    var lineItemID = rec.getSublistValue({
        sublistId: 'item',
        fieldId: 'id',
        line: 1
    });

    rec.setSublistValue({
        sublistId: 'item',
        fieldId: 'custcol_so_line_id',
        value: lineItemID
    });
}

return {
    beforeSubmit: beforeSubmit
}

点击销售记录中的保存按钮。销售记录应在自定义行字段“ cuscol_so_line_id”中显示 SO_12345 。但它没有显示错误,如下所示: load: Missing a required argument: id代表代码var salesRec = record.load({...

如果将入口点更改为“ afterSubmit”,则会显示 SO_12345

在提交记录之前,我们不能更新记录吗?如何在beforeSubmit函数中找到行的ID?

3 个答案:

答案 0 :(得分:1)

在“提交前功能”中,您不会获得记录ID。这是导致您提到的错误。

在提交之后,您将获得记录ID,因为它是保存记录之后的。

答案 1 :(得分:1)

您尝试使用salesRec获得的收益与您已经获得rec获得的收益相同。但是,您无法加载salesRec,因为在触发beforeSubmit时尚未将其写入数据库。您需要改为对rec进行更改。

function beforeSubmit(context) {

    var rec = context.newRecord;

    rec.setSublistValue({
        sublistId: 'item',
        fieldId: 'custcol_so_line_id',
        value: 'SO_12345',
        line: 1
    });
}

return {
    beforeSubmit: beforeSubmit
}

答案 2 :(得分:0)

我发现网址是这样的 (domain).netsuite.com/app/accounting/transactions/salesord.nl?whence=里面没有销售记录ID。

这是否表示未生成记录ID? 如果是,则行ID可能也未定义,因为其前缀将 RECORD-ID_LINE-INDEX ,例如2100627_2,其中2100627是记录ID,2是行索引。