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

问题描述 投票:-1回答:3

有一个自定义的事务行字段,名为“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?

javascript database dom netsuite suitescript2.0
3个回答
1
投票

在提交功能之前,您将无法获得记录ID。这导致您提到的错误。

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


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
}

0
投票

我发现URL就像这个(domain).netsuite.com/app/accounting/transactions/salesord.nl?whence=里面没有销售记录ID。

这是否意味着没有生成记录的ID?如果是,则行ID可能还没有定义,因为它的前缀将是RECORD-ID_LINE-INDEX,例如, 2100627_2,其中2100627是记录ID,而2是线索引。

© www.soinside.com 2019 - 2024. All rights reserved.