NetSuite SuiteScript中如何从转换后的记录获取内部ID?
解决SuiteScript 2.1转换销售订单为发票后获取ID的问题
在SuiteScript 2.1中,record.save()方法会直接返回新创建记录的内部ID,你不需要在保存后通过getValue('id')去获取,直接接收这个返回值即可。
修正后的代码示例:
let soIID = 1; // 实际值来自Map/Reduce的getInputData let invoiceRecord = record.transform({ fromType: 'salesorder', fromId: soIID, toType: 'invoice', }); invoiceRecord.setValue('trandate', new Date(soDate.trandate)); // 接收save方法的返回值,这就是新生成的发票ID const invoiceId = invoiceRecord.save(); // 直接使用invoiceId即可,无需后续调用getValue log.debug('新创建的发票ID', invoiceId);
原因说明:
调用record.transform()得到的是一个未持久化到数据库的内存记录对象,此时它还没有分配ID。执行save()后,NetSuite会将记录写入系统并返回其内部ID,但这个ID不会自动同步到你之前的invoiceRecord实例中——所以你后续调用getValue('id')自然无法获取到有效ID。
内容的提问来源于stack exchange,提问作者Derkel
相关产品推荐
相关产品推荐

