有一个自定义的交易行字段,其名称为“ 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?
答案 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
是行索引。