5

我有一个自定义记录,其中包含一个项目字段和一个位置字段。我对该记录进行了保存的搜索,该记录已经包含我想要的列和一些始终需要的开始条件。我想在处理销售订单时使用此搜索。我想在行上存储所有项目内部 id 和位置 id 的数组,然后将其作为动态过滤器传递给 SuiteScript 2.0 中的此搜索。

根据文档,这是可以做到的。在 search.Filter 页面上,它显示“您使用 search.createFilter(options) 创建搜索过滤器对象并将其添加到使用 search.create(options) 创建的 search.Search 对象或使用 search.load(options) 加载。” 但是,我在 search.load 上没有看到任何参数,也没有在加载后添加它的代码示例。所有使用 search.Filter 的例子都在 search.create 函数中使用

感谢您提供的任何帮助。

4

3 回答 3

9

您可以将过滤器对象推送到搜索的过滤器属性。

searchObj.filters.push(filterObj);
于 2017-11-30T19:44:09.813 回答
6

我将以简单的方式列出这些步骤,以便您更好地理解它。掌握窍门后,您可以按照自己的方式进行编辑

脚步 :

1.加载保存的搜索(比如objSearch

2.将objSearch中的过滤器复制到一个新数组中(比如defaultFilters

3.创建一个新数组(比如customFilters)来存储新的过滤器,我们将它推入defaultFilters

4.最后,我们将修改后的defaultFilters复制回objSearch并运行保存的搜索

//Load saved search into objSearch    
var objSearch = search.load({
                id: 'savedsearchid'
            });

//Copy the filters from objSearch into defaultFilters
            var defaultFilters = objSearch.filters;

            var customFilters = [];

            //We will add the new filter in customFilters
            customFilters = ['postingperiod', 'ANYOF', '1'];

//We will push the customFilters into defaultFilters
            defaultFilters.push(customFilters);


//We will copy the modified defaultFilters back into objSearch
     objSearch.filters = defaultFilters;


//Run the saved search
            var objSearch_run = objSearch.run().getRange({
                start: 0,
                end: 10
            });
于 2017-12-13T11:19:11.633 回答
0
var mySearch = search.load({ id: '851' });
var defaultFilters = mySearch.filters;
var customFilters = {};
customFilters = {"name":"custrecord_customer","operator":"anyof","values":["64468"],"isor":false,"isnot":false,"leftparens":0,"rightparens":0};        
defaultFilters.push(customFilters);
mySearch.filters = defaultFilters; 
于 2018-05-09T23:49:30.830 回答