【发布时间】:2021-03-15 22:00:20
【问题描述】:
我正在尝试使用特定已保存搜索的结果来尝试过滤 suitescript 中的另一个已保存搜索。
基本上,在项目上创建了一个按钮。单击按钮后,我需要获取该特定项目的所有任务,并使用每个任务使用自定义字段过滤交易保存的搜索,并获取有关该已保存搜索的任何信息。
这是我目前所拥有的:
function runScript(context) {
var record = currentRecord.get();
var id = record.id;
var type = record.type;
var i = 0;
console.log(id);
var projectSearch = search.load({id: 'customsearch1532'})
var billableExpenseSearch = search.load({id: 'customsearch1533'})
var projectFilter = search.createFilter({
name:'internalId',
operator: search.Operator.IS,
values: id
});
projectSearch.filters.push(projectFilter);
var projectResults = projectSearch.run().getRange(0,1000);
while(i < projectResults.length){
var task = projectResults[i].getValue(projectSearch.columns[1]);
console.log(task);
var billableExpenseFilter = search.createFilter({
name:'custcol4',
operator: search.Operator.ANYOF,
values: task
});
billableExpenseSearch.filters.push(billableExpenseFilter);
var billableExpenseResults = billableExpenseSearch.run().getRange(0,1000);
console.log(billableExpenseResults.length);
for(var j = 0; j< billableExpenseResults.length; j++){
var testAmount = billableExpenseResults[j].getValue(billableExpenseSearch.columns[3]);
console.log(testAmount);
}
i++;
}
}
任务的日志是正确的。我正在尝试的项目中有 2 个任务,但是一旦我们进行第二次迭代,billableExpenseSearch 长度显示为 0,而它应该是 1。
我猜我的逻辑不正确,createFilter 函数在创建过滤器后不接受更改。 任何帮助表示赞赏!
编辑:
var billableExpenseSearch = search.load({id: 'customsearch1533'});
var billableExpenseFilter = search.createFilter({
name:'custcol4',
operator: search.Operator.ANYOF,
values: task
});
billableExpenseSearch.filters.push(billableExpenseFilter);
var billableExpenseResults = billableExpenseSearch.run().getRange(0,1000);
console.log(billableExpenseResults.length);
for(var j = 0; j< billableExpenseResults.length; j++){
var taskid = billableExpenseResults[j].getValue(billableExpenseSearch.columns[0]);
console.log(taskid);
谢谢
【问题讨论】:
标签: filter netsuite suitescript suitescript2.0 saved-searches