Searching for a Multi-select Custom Field

In the following code sample, the results for the custom transaction field custcolcolumnname are returned.

Java

             // transaction search by custom column field
   TransactionSearchBasic transactionSearch = new TransactionSearchBasic();
   
   SearchCustomFieldList searchCustomFieldList = new SearchCustomFieldList();
   transactionSearch.setCustomFieldList(searchCustomFieldList);
   
   // make the multiselectsearch
   SearchMultiSelectCustomField searchMultiSelectCustomField = new SearchMultiSelectCustomField();
   
   ListOrRecordRef listOrRecordRef = new ListOrRecordRef();
   listOrRecordRef.setInternalId("3"); // the internal id of the custom list value
   listOrRecordRef.setType("1"); // your custom list typeId
   
   searchCustomFieldList.setCustomField(new SearchCustomField[]{searchMultiSelectCustomField});
   
   // make the search expression
   searchMultiSelectCustomField.setscriptId("custcolcolumnname"); //the name of the tx custom column
   searchMultiSelectCustomField.setOperator(SearchMultiSelectFieldOperator.anyOf);
   
   searchMultiSelectCustomField.setSearchValue(new ListOrRecordRef[] {listOrRecordRef});
   
   SearchResult sr = _port.search(transactionSearch); 

        

C#

          private void searchForMultiSelectCustomField()
 
        {
            if (_isAuthenticated)
            {
                _out.info("\nExecuting  search ..... \n");
                // transaction search by custom column field
                TransactionSearch transactionSearch = new TransactionSearch();
                TransactionSearchBasic transactionSearchBasic = new TransactionSearchBasic();
 
                //Java - the SearchCustomFieldList is not used. 
                //SearchCustomFieldList searchCustomFieldList = new SearchCustomFieldList();
                //transactionSearch.setCustomFieldList(searchCustomFieldList);
                SearchMultiSelectCustomField searchMultiSelectCustomField = new
            SearchMultiSelectCustomField();
 
                // make the search expression
               //the name of the transaction custom column
         searchMultiSelectCustomField.scriptId = "custbody_multi_select"; 
                searchMultiSelectCustomField.@operator = SearchMultiSelectFieldOperator.anyOf;
                searchMultiSelectCustomField.operatorSpecified = true;
                //custom list called colors with typei id  1, values blue - internalid 1, green - id2 etc
                //we are looking for transactions which have transaction body field
          //of type multi select set to color blue
                ListOrRecordRef listOrRecordRef = new ListOrRecordRef();
                listOrRecordRef.internalId = "3";
                listOrRecordRef.typeId = "1";
 
                searchMultiSelectCustomField.searchValue = new ListOrRecordRef[] { listOrRecordRef };
                SearchCustomField[] searchCustomFieldList = new SearchCustomField[] {
      searchMultiSelectCustomField };
 
                //Java
                //searchCustomFieldList.setCustomField(new SearchCustomField[]{searchMultiSelectCustomField});
                transactionSearchBasic.customFieldList = searchCustomFieldList;
                transactionSearch.basic = transactionSearchBasic;
                SearchResult searchRes = _service.search(transactionSearch);
                _out.info("\nSearch Result contains " + searchRes.totalRecords + " record(s) \n");
            }
            else
            {
                _out.info(
                    "\nCannot call  search operation  because there is no active session. " +
                    "You must be first logged on before attempting to call saved search.\n");
            }
        } 

        

Related Topics

General Notices