如何在NetSuite suitescript 2.0中批量删除自定义记录?
我的问题很简单。我想知道是否有人知道如何使用suitescript2.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
/** * @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工具插件: