How to create NetSuite SuiteTalk search with multiple terms? -


how 1 create suitetalk (netsuite web api) search query specifying multiple search terms indicating logical or operator?

for example, want retrieve timebill records create or last modified dates within particular range. here's code works great single search term. adding search term appears create logical , operation.

    /// <summary>     /// return list of time bills last modified date within      /// indicated date range.     /// </summary>     /// <param name="from">required date</param>     /// <param name="to">optional date</param>     /// <returns>list of time bills</returns>     public ienumerable<timebill> gettimebills(datetime from, datetime to)     {         _log.debug(string.format("enter timebill(datetime from='{0}', datetime to='{1}')", from, to));          // build search criteria.         timebillsearch search = new timebillsearch();         timebillsearchbasic searchbasic = new timebillsearchbasic();         searchdatefield searchdatefield = new searchdatefield();         searchdatefield.@operator = searchdatefieldoperator.within;         searchdatefield.operatorspecified = true;         searchdatefield.searchvalue = from;         searchdatefield.searchvaluespecified = true;         searchdatefield.searchvalue2 = to;         searchdatefield.searchvalue2specified = true;         searchbasic.datecreated = searchdatefield;                     search.basic = searchbasic;          return this.get<timebill>(search);     }        /// <summary>     /// perform paged search , convert returned record indicated type.     /// </summary>     private ienumerable<t> get<t>(searchrecord searchrecord)     {         _log.debug("enter get<t>(searchrecord searchrecord)");          // returned.         list<t> list = new list<t>();          // suitetalk service return this.         searchresult result = null;          using (isuitetalkservice service = suitetalkfactory.get<suitetalkservice>())         {                         {                 // .search returns first page of data.                 if (result == null)                 {                     result = service.search(searchrecord);                 }                 else // .searchmore returns next page(s) of data.                 {                     result = service.searchmorewithid(result.searchid, result.pageindex + 1);                 }                  if (result.status.issuccess)                 {                     foreach (record record in result.recordlist)                     {                         if (record t)                         {                             list.add((t)convert.changetype(record, typeof(t)));                         }                     }                 }             }             while (result.pageindex < result.totalpages);         }         return list;     } 

per netsuite user community (forum), not believe possible (at least not appear in wsdl suitetalk/web services): https://usergroup.netsuite.com/users/showthread.php?t=29818

however, can dynamically create complex saved search (using suitescript in suitelet) includes and/or , parentheses using nlobjsearchfilter methods setleftparens(), setrightparens(), , setor() (as surmised, logical "and" default behavior when multiple filters present).

a dynamically created saved search (confusing terminology here, know) can saved , loaded later reuse. therefore potentially take advantage of dynamically created saved searches on netsuite server having web services code invoke saved search , retrieve results, yet still have dynamic (no hardcoded search filters/values).

as mentioned on forum, potentially execute multiple searches , stitch results (in suitetalk c#/java etc. code).


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -