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
- 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