尝试在 Netsuite 中配置记录创建脚本。 只是掌握基础知识。
我根据 Netsuite 文档创建了此脚本,并稍加修改以使其与我的帐户相关。
它运行并显示“完成”,但是没有创建任何事务,并且在我尝试捕获文档编号的日志中,它显示“待生成”。
我遵循了所有关于此的 Oracle 文档,所以不确定,感谢任何帮助。
/**
* @NApiVersion 2.x
* @NScriptType ScheduledScript
*/
define(['N/runtime', 'N/record'], function(runtime, record) {
return {
execute: function(context) {
var objRecord = record.create({
type: record.Type.INVOICE,
isDynamic: true,
defaultValues: {
entity: 3413
}
});
objRecord.setValue({
fieldId: 'location',
value: 1
});
objRecord.selectNewLine({
sublistId: 'item'
});
objRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: 190
});
objRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'quantity',
value: 2
});
objRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'rate',
value: 2
});
var documentNum = objRecord.getValue({
fieldId: 'tranid'
});
log.debug({
title: 'New Invoice',
details: 'Record creation progress' + documentNum
});
}
};
});
需要先执行objRecord.save(),然后记录会被保存并生成tranid
在将记录保存到数据库之前,您需要先保存记录 (
objRecord.save()
),否则会生成 tranid
。此外,在执行此操作之前,您需要确保交易中有项目行。当您使用动态模式功能(getCurrent...
和 setCurrent...
)将值添加到项目行时,您还需要在保存之前提交该行:
objRecord.commitLine({
sublistId: 'item'
});