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;
我有一个自定义记录,其中有一个项目字段和一个位置字段。我在该记录上保存了一个搜索,其中已经包含我想要的列和一些始终需要的开始条件。我想在处理销售订单时使用此搜索。我想在行中存储所有项目内部 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;