1

我在 UserEvent 中有以下 SuiteScript 2.0 代码,我想在其中向加载的已保存搜索添加额外的过滤器和列。过滤器工作正常,但如何从 Array 中获取列值,该列值在 Saved search 中作为额外列添加。

var filters = [];
filters.push(
['memo', 'is', 'Updated']
);
var filters = [];
filters.push(
['memo', 'is', 'Updated']
);

var columnsCust = [];
columnsCust.push(search.createColumn({
name: 'trandate'
}));

var mySearch = search.load({
id: 'customsearch_so_savedsearch'
});

//Add filters
mySearch.filterExpression = filters;
var filtersResult = mySearch.filterExpression;

//Add columns
mySearch.column = columnsCust;
var columnResult = mySearch.column;

var searchResult = mySearch.run().getRange({start: 0,end: 10});
for (var i = 0; i < searchResult.length; i++) 
{
var date = searchResult[i].getValue({name: 'trandate'});
log.debug('date::' + date);      //date::null
//it gives transactionnumber value Because this column exist in Saved 
  //search.
    var transactionnumber = searchResult[i].getValue({name: 'transactionnumber'});
log.debug('transactionnumber::' + transactionnumber);   //transactionnumber::112513
}
4

1 回答 1

2

要在搜索对象中添加额外的列、过滤器或 filterExpressions,首先您需要从 search-object 获取对象,然后对其进行更新。

对于搜索列 var searchColumns = mySearch.columns;

searchColumns.push(AdditionalColumns);

mySearch.columns = searchColumns;

对于搜索过滤器

var searchFilters = mySearch.filters;

searchFilters.push(additionalFilters);

mySearch.filters = searchFilters;

对于过滤器表达式

var searchFilterExpression = mySearch.filterExpression;

// push operator if searchObject contains filters
if (searchFilterExpression.length > 0) {
  searchFilterExpression.push('and');
}

searchFilterExpression.push(additionalFilterExpression);

mySearch.filterExpression = searchFilterExpression;

注意:查看内容以进一步阅读。

于 2019-10-01T12:29:29.047 回答