【问题标题】:SuiteScript 2.0 Add filters to saved search in scriptSuiteScript 2.0 在脚本中添加过滤器以保存搜索
【发布时间】:2018-05-14 16:35:06
【问题描述】:

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

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

感谢您提供的任何帮助。

【问题讨论】:

    标签: netsuite suitescript suitescript2.0


    【解决方案1】:
    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; 
    

    【讨论】:

      【解决方案2】:

      我会以简单的方式列出这些步骤,以便您更好地理解它。 掌握了窍门后,就可以随意编辑了

      步骤:

      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
                  });
      

      【讨论】:

      • 我在另一个答案的帖子中提到了这一点(并在此处链接到您的答案!),但您也可以将过滤器数组连接在一起以使其更简单一些。见stackoverflow.com/a/57732755/880695
      【解决方案3】:

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

      searchObj.filters.push(filterObj);
      

      【讨论】:

      • search.createFilter({options}) 可用于创建您的 filterObj
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      相关资源
      最近更新 更多