2016-11-14 99 views
0

我试图加载保存的搜索列表,其中类型是“客户”。我可以加载所有搜索,但为了确定保存的搜索是否为客户保存的搜索,我需要对每个结果调用search.load(),然后检查searchType。我遇到了治理问题。如何过滤已保存的'保存的搜索'搜索类型?

我在下面的过滤器中看到一个错误(无效的搜索过滤器)。

如何过滤搜索客户保存的搜索?

require(['N/search', 'N/record'], 
    function GetSavedSearches(search, record) { 

    var records = new Array(); 

    var typeFilter = search.createFilter({ 
     name: 'Type', 
     operator: search.Operator.ANYOF, 
     values: 'customer' 
    }); 

    var mySearch = search.create({ 
     type: search.Type.SAVED_SEARCH, 
     columns: [{ 
      name: 'internalid' 
     }, { 
      name: 'ID' 
     }, { 
      name: 'Title' 
     }, { 
      name: 'Owner' 
     }, { 
      name: 'Access' 
     }], 
     filters: typeFilter 
    }); 
    mySearch.run().each(processRecord); 
    function processRecord(result) { 

     var columns = result.columns(); 

     var searchID = result.getValue({ 
      name: 'ID' 
     }); 

     try { 
      var loadedSearch = search.load({ 
       id: searchID 
      }); 
      var searchName = result.getValue({ 
       name: 'Title' 
      }); 
      var searchType = loadedSearch.searchType; 
      var searchAccess = loadedSearch.isPublic; 

      if (searchType == "customer") { 
       var record = { 
        SS_ID: result.id, 
        'Title': searchName, 
        'Type': searchType, 
        'Public': searchAccess 
       }; 

       records.push(record); 
      } 
     } 
     catch (ex) { 
      // an error occurs when trying to load a search that is actually an update. 
     } 

     var x = 0; 
     return true; 
    } 
}); 

回答

1

你必须定义过滤器,因为这:

 var typeFilter = search.createFilter({ 
     name: 'recordtype', 
     operator: search.Operator.ANYOF, 
     values: 'Customer' 
    }); 
+0

是“客户”的过滤器的正确的价值?我没有得到应用过滤器的结果。 – ehcanadian

+0

区分大小写再次触击。 '客户'是正确的。谢谢!! – ehcanadian

+0

或者你可以使用枚举'record.TYPE.CUSTOMER' – tzvi