externalId id used to reference records by their external ID in select and multi-select custom fields. For select lists or multi selects which can have a null value, the UI supports the search criteria on these list type fields as "None Of" "-None-", which essentially means not "Any Of" all list options. Such a search would result in all records which do NOT have this list type field as null. In order to accomplish this "None Of " "-None-" search you need to set the internalId of the search key to "@None@".
Example:
---------------------------------------
To search for Customers which have a Partner associated with them in NetSuite, the SOAP would look as below for the "Partner field not null" part:
<ns3:partner operator="noneOf">
<ns8:searchValue internalId="@NONE@" xmlns:ns8="urn:core_2_5.platform.webservices.netsuite.com"/>
</ns3:partner>
<ns3:customFieldList>
Searching for a Multi-select Custom Field In 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.internalId = "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");
}
}
3