netsuite

Requesting customField, customFieldList & customSearchJoin with PHP API Advanced Search

Introduction#

These where some of the hardest things (and least talked about) to do with the PHP API advanced search (where you specify what fields).

Im in the process of migrating to rest_suite github library that uses RESTLET, and get around the PHP API user concurrency limit of 1.

But before i delete my old code im posting it here. Example specs for these field can be found here: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_1/schema/search/transactionsearchrow.html?mode=package

customField & customFieldList Usage

$service = new NetSuiteService();
$search = new TransactionSearchAdvanced();
$internalId = '123';//transaction internalId

$search->criteria->basic->internalIdNumber->searchValue = $internalId;
$search->criteria->basic->internalIdNumber->operator = "equalTo";

$field = new SearchColumnSelectCustomField();
$field->scriptId = 'custbody_os_freight_company';//this is specific to you & found in netsuite
$search->columns->basic->customFieldList->customField[] = $field;

$field = new SearchColumnStringCustomField();
$field->scriptId = 'custbody_os_warehouse_instructions';//this is specific to you & found in netsuite
$search->columns->basic->customFieldList->customField[] = $field;

//and so on, you can keep adding to the customField array the custom fields you want

$request = new SearchRequest();

$request->searchRecord = $search;

$searchResponse = $service->search($request);

customSearchJoin Usage

$service = new NetSuiteService();
$search = new TransactionSearchAdvanced();
$internalId = '123';//transaction internalId

$search->criteria->basic->internalIdNumber->searchValue = $internalId;
$search->criteria->basic->internalIdNumber->operator = "equalTo";

$CustomSearchRowBasic = new CustomSearchRowBasic();
$CustomSearchRowBasic->customizationRef->scriptId = 'custbody_os_entered_by';//this is specific to you & found in netsuite
$CustomSearchRowBasic->searchRowBasic = new EmployeeSearchRowBasic();
$CustomSearchRowBasic->searchRowBasic->entityId = new SearchColumnStringField();

$search->columns->customSearchJoin[] = $CustomSearchRowBasic;
//and so on, you can keep adding to the customSearchJoin array the custom fields you want         

$request = new SearchRequest();

$request->searchRecord = $search;

$searchResponse = $service->search($request);

This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow