Javascript 在suitescript 2.0中加载保存的搜索时,search.run().getRange出错
我已在我的Javascript 在suitescript 2.0中加载保存的搜索时,search.run().getRange出错,javascript,netsuite,suitescript,suitescript2.0,Javascript,Netsuite,Suitescript,Suitescript2.0,我已在我的beforeLoaduserevent脚本中加载了保存的搜索。 当我尝试在应用一个过滤器后运行搜索时,Netsuite抛出一个意外的\u错误。有人能提出这个错误的原因吗 var poRec = context.newRecord; var countItem = poRec.getLineCount({ sublistId: 'item' }); var reqValue = poRec.getValue({ fieldId:'custbody_reqfield' });
beforeLoad
userevent脚本中加载了保存的搜索。
当我尝试在应用一个过滤器后运行搜索时,Netsuite抛出一个意外的\u错误
。有人能提出这个错误的原因吗
var poRec = context.newRecord;
var countItem = poRec.getLineCount({ sublistId: 'item' });
var reqValue = poRec.getValue({ fieldId:'custbody_reqfield' });
var itemSearch = search.load({
id: 'customsearch_anis_item_search'
});
log.error('itemSearch', itemSearch);
if (!!reqValue) {
itemSearch.filters.push(
search.createFilter({
name: "custitem_an_test_field",
operator: search.Operator.ANYOF,
values: reqValue
})
);
}
var results = itemSearch.run().getRange({ start: 0, end: 1000 });//ERROR ON THIS LINE(line:181)
错误如下:
{
"type":"error.SuiteScriptError",
"name":"UNEXPECTED_ERROR",
"message":null,
"stack":
[
"getRange(N/searchObject)",
"myAfterSubmit(/SuiteScripts/sample_ue.js:181)",
"afterSubmit(/SuiteScripts/sample_ue.js:35)"
],
"cause":
{
"type":"internal error",
"code":"UNEXPECTED_ERROR",
"details":null,
"userEvent":"aftersubmit",
"stackTrace":
[
"getRange(N/searchObject)",
"myAfterSubmit(/SuiteScripts/sample_ue.js:181)",
"afterSubmit(/SuiteScripts/sample_ue.js:35)"
],
"notifyOff":false
},
"id":"f414b115-c840-40de-8cf8-c0148da0c506-2d323032302e30322e3035",
"notifyOff":false,
"userFacing":false
}
您需要替换search.filters数组或使用筛选器表达式
var newFilters = [];
newFilters.push(
search.createFilter({
name: "custitem_an_test_field",
operator: search.Operator.ANYOF,
values: reqValue
}));
itemSearch.filters = newFilters;
// OR
itemSearch.filters = ["custitem_an_test_field", "ANYOF", reqValue];
这将覆盖保存的搜索上的任何现有筛选器。@erictgrbaugh true。OP需要将过滤器复制到新数组中,然后以其他方式应用它。