Searching for a Multi-select Custom Field
Important:
In many cases, you can achieve the equivalent of SOAP operations using REST web services. For a comparison of available operations in SOAP and REST web services, see SOAP Web Services vs. REST Web Services Operation Mapping.
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
- search
- Basic Searches in SOAP Web Services
- Joined Searches in SOAP Web Services
- Advanced Searches in SOAP Web Services
- Joining Through Custom Fields
- Setting Valid Search Values
- Setting the anyof, mine, or myteam Filtering Values
- Searching by lastModifiedDate
- Understanding Sorting in Advanced Search
- Search-Related Sample Code
- Search Issues and Best Practices for SOAP Web Services and SuiteScript