我的问题很简单。我想知道是否有人已经想出如何使用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
};
});
答案 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使用此首选项值来确定是否必须报告关键字的语法错误。该修复程序包括编辑器的协调程序更改,以便在更改后立即更改首选项值。 ......