** SuiteScript 2.0 ** 在客户端脚本中创建搜索对象时出错
** SuiteScript 2.0 ** Error while creating search object in client script
searchResultSet.columns.length --> 未定义....
此代码中缺少什么?
函数 pageInit(scriptContext) {
try{
var currentRecord = scriptContext.currentRecord;
var searchObj = search.load({
id:'customsearchvc_bt_duplicate_vendor_list'
});
var searchResultSet=searchObj.run();
var noOfDupVendors = searchResultSet.length;
log.debug({details: "there are "+searchResultSet.columns.length+" duplicate vendors"});
currentRecord.setText({
fieldId: 'custrecordvc_merge_vendor_total_unique_v',
text: noOfDupVendors
});
}catch(e){
log.error("error at getinputdata stage","error detail is :"+e.message);
}
searchResultSet 对象上没有 length
属性。该集合 实际上 不包含结果(我知道,这很奇怪)您需要遍历结果以求和。在你的情况下,你可以通过草率的 "it'll always be less than 1000" 解决方案逃脱:
var searchResults = searchResultSet.getResults({
start: 0,
end: 1000
});
var noOfDupVendors = searchResults.length
无限 结果的解决方案可能如下所示:(未经测试):
var searchResults;
var noOfDupVendors = 0;
do{
searchResults = searchResultSet.getResults({
start: noOfDupVendors,
end: noOfDupVendors+1000
});
noOfDupVendors += searchResults.length
}while(searchResults.length == 1000);
另一种(也未经测试)紧凑的方式,如果你可以指望 4000 或更少的结果将是:
var noOfDupVendors = 0;
searchResultSet.each(function(result){noOfDupVendors++; return true;})
searchResultSet.columns.length --> 未定义....
此代码中缺少什么?
函数 pageInit(scriptContext) {
try{
var currentRecord = scriptContext.currentRecord;
var searchObj = search.load({
id:'customsearchvc_bt_duplicate_vendor_list'
});
var searchResultSet=searchObj.run();
var noOfDupVendors = searchResultSet.length;
log.debug({details: "there are "+searchResultSet.columns.length+" duplicate vendors"});
currentRecord.setText({
fieldId: 'custrecordvc_merge_vendor_total_unique_v',
text: noOfDupVendors
});
}catch(e){
log.error("error at getinputdata stage","error detail is :"+e.message);
}
searchResultSet 对象上没有 length
属性。该集合 实际上 不包含结果(我知道,这很奇怪)您需要遍历结果以求和。在你的情况下,你可以通过草率的 "it'll always be less than 1000" 解决方案逃脱:
var searchResults = searchResultSet.getResults({
start: 0,
end: 1000
});
var noOfDupVendors = searchResults.length
无限 结果的解决方案可能如下所示:(未经测试):
var searchResults;
var noOfDupVendors = 0;
do{
searchResults = searchResultSet.getResults({
start: noOfDupVendors,
end: noOfDupVendors+1000
});
noOfDupVendors += searchResults.length
}while(searchResults.length == 1000);
另一种(也未经测试)紧凑的方式,如果你可以指望 4000 或更少的结果将是:
var noOfDupVendors = 0;
searchResultSet.each(function(result){noOfDupVendors++; return true;})