SuiteScript 2.0 添加过滤器以保存脚本中的搜索

SuiteScript 2.0 Add filters to saved search in script

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

根据文档,这是可以做到的。在 search.Filter 页面上显示 "You create a search filter object with search.createFilter(options) and add it to a search.Search object that you create with search.create(options) or load with search.load(options)." 但是,我在 search.load 上没有看到任何参数,也没有在加载后添加它的代码示例。使用 search.Filter 的所有示例都在 search.create 函数中使用它

感谢您提供的任何帮助。

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

searchObj.filters.push(filterObj);

我会把步骤简单的列出来,方便大家更好的理解。 掌握了它之后,您可以按照自己的方式进行编辑

步骤:

1.Load 保存的搜索(比如 objSearch

2.Copy 来自 objSearch 的过滤器到一个新数组中(比如说 defaultFilters

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

4.At 最后,我们将修改后的 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
            });
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;