如何在NetSuite suitescript 2.0中批量删除自定义记录?

时间:2017-02-01 01:02:58

标签: netsuite

我的问题很简单。我想知道是否有人已经想出如何使用suitescript2.0批量删除自定义记录。

/** * @NApiVersion 2.x
 * @NScriptType ScheduledScript
 */

define ([         
 'N/error',        
 'N/record',
 'N/runtime',
 'N/log',
 ],
function(error, record,runtime, log) {
    function execute(context) {



    for(var i=4;i< 11614;i++){
    var objRecord = record.delete({ type: 'customrecord_uber_billing_report_data', id: i});

    }


    }
    return {
        execute: execute
    };




});

Eclipse似乎不喜欢语法 enter image description here

3 个答案:

答案 0 :(得分:1)

您似乎正确使用record.delete,但单个自定义记录类型的实例不是连续的。并非每个i从4到11614都是customrecord_uber_billing_report_data的实例。

您是否收到任何特定错误或行为?

答案 1 :(得分:1)

你可以用“承诺”来做到这一点。到目前为止,Netsuite没有一个Suitescript功能来快速删除一堆记录。使用此功能,您可以逐个删除,并使您的代码保持另一种功能。希望这会有所帮助。

require(['N/record', 'N/search'], function (record, search) {
    function deleteUnwantedRecords() {
        var objRecord = search.create.promise({
                type: 'customrecord_your_record',
                columns: [
                    'internalid', // The record's ID
                ],
                filters: []// no filters
            }).then(function (result) {
                var HowManyFound = 0;
                result.run().each(function (rl) {
                    HowManyFound++;
                    var recToDelete = rl.getValue('internalId');
                    var objNewRecord = record.delete ({
                            type: 'customrecord_your_record',
                            id: recToDelete,
                        });
                    console.log('Error ID: ' + rl.getValue('internalId'));
                    return true;
                });
                console.log('#Error Logs found: ' + HowManyFound);
            }).catch (function (reason) {
                log.debug("Failed: " + reason);
            })
    }
    var delRecs = deleteUnwantedRecords();
});

答案 2 :(得分:-1)

https://bugs.eclipse.org/bugs/show_bug.cgi?id=443876

Victor Rubezhny 2014-09-11 17:10:24 EDT

随着越来越多使用ECMA5标准的JavaScript库和工具的出现,使用JSDT变得越来越困难。

问题在于,JSDT Parser目前支持的ECMA3不允许在ECMA5中使用和启用许多可用的东西,例如使用关键字(如抽象,继续,删除,导入等) on)作为标识符(属性,函数或变量的名称)。

将当前的JSDT解析器/编译器/推理引擎替换为支持ECMA5的引擎并不是一项微不足道的任务,因此Bug 223131多年来一直没有得到解决。

应该是一种解决方案,为知道当前JSDT解析器限制的用户提供隐藏此类语法错误的方法,这样用户就可以在包含的JavaScript库中看到他们的项目没有烦人的错误标记他们自己的代码。

评论1 Victor Rubezhny 2014-09-16 13:26:29 EDT

该补丁添加了一个首选项来显示/隐藏关键字的语法错误 该修补程序将新的首选项添加到JavaScript-&gt; Validator-&gt;错误/警告页面:&#34;严格验证JavaScript关键字的使用情况&#34; (默认值为true - 为了使其以之前的方式工作)。 ProblemReporter使用此首选项值来确定是否必须报告关键字的语法错误。该修复程序包括编辑器的协调程序更改,以便在更改后立即更改首选项值。 ......