Netsuite 创建记录 - 未创建记录

问题描述 投票:0回答:2

尝试在 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
                });
            
         }
    };
});
netsuite suitescript
2个回答
1
投票

需要先执行objRecord.save(),然后记录会被保存并生成tranid


0
投票

在将记录保存到数据库之前,您需要先保存记录 (

objRecord.save()
),否则会生成
tranid
。此外,在执行此操作之前,您需要确保交易中有项目行。当您使用动态模式功能(
getCurrent...
setCurrent...
)将值添加到项目行时,您还需要在保存之前提交该行:

objRecord.commitLine({
    sublistId: 'item'
});
© www.soinside.com 2019 - 2024. All rights reserved.