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

如何在NetSuite suitescript 2.0中批量删除自定义记录?,netsuite,Netsuite,我的问题很简单。我想知道是否有人知道如何使用suitescript2.0批量删除自定义记录 /** * @NApiVersion 2.x * @NScriptType ScheduledScript */ define ([ 'N/error', 'N/record', 'N/runtime', 'N/log', ], function(error, record,runtime, log) { function execute(cont

我的问题很简单。我想知道是否有人知道如何使用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
    };




});
/***@NApiVersion 2.x
*@NScriptType ScheduledScript
*/
定义([
'不正确',
“不记录”,
“N/运行时”,
“N/log”,
],
函数(错误、记录、运行时、日志){
函数执行(上下文){
对于(变量i=4;i<11614;i++){
var objRecord=record.delete({type:'customrecord\u uber\u billing\u report\u data',id:i});
}
}
返回{
执行:执行
};
});
Eclipse似乎不喜欢这种语法

您似乎正在使用
记录。请正确删除
,但单个自定义记录类型的实例不是连续的。并非从4到11614的每个
i
都是
customrecord\u uber\u billing\u report\u data
的实例

您是否有任何特定的错误或行为?

维克多·鲁贝什尼2014-09-11 17:10:24美国东部时间

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

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

用支持ECMA5的JSDT解析器/编译器/推理引擎替换当前的JSDT解析器/编译器/推理引擎并不是一项简单的任务,因此错误223131多年来一直没有解决

它应该是一种解决方案,为那些意识到当前JSDT解析器局限性的用户提供一种隐藏此类语法错误的方法,这样用户就可以在包含的JavaScript库和自己的代码中看到他们的项目,而不会出现恼人的错误标记

评论1维克多·鲁贝什尼2014-09-16 13:26:29美国东部时间

该补丁添加了一个首选项,用于显示/隐藏关键字上的语法错误 修复程序将新的首选项添加到JavaScript->Validator->Errors/Warnings页面:“严格验证JavaScript关键字的使用”(默认值为true,以便使其能够像以前那样工作)。ProblemReporter使用此首选项值来决定是否必须报告关键字的语法错误。修复程序包括编辑器的调节器更改,以使首选项值更改为在更改后立即播放。 ……你可以用“承诺”来做到这一点。到目前为止,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();
});

我手动删除了内部ID为1-4的记录。在eclipse中,我得到了一个错误。令牌“delete”上的语法错误,应为标识符。我不明白为什么。Eclipse认为这是一个语法错误,因为
delete
在JS语言中是一个关键字,但它不是保留名称。在NetSuite.FWIW中运行时,它实际上不应影响功能。对于我所有的NetSuite开发,我使用WebStorm和NetSuite工具插件: