2015-03-19 22 views
1

我是NetSuite的新手。我使用2014 PHP开发人员工具包。我想搜索一个SalesOrder(就像他们在他们的示例search.php文件中有搜索员工)。Net suite PHP - 搜索SalesOrder

免得说,我想通过“salesRep”搜索SO并获取其internalId。之后,我想更新“备忘录”。

我tryied做这样的搜索,

$gr = new GetRequest(); 
$gr->baseRef = new RecordRef(); 
$gr->baseRef->salesRep= "<name>"; 
$gr->baseRef->type = "salesOrder"; 

但我得到一个错误说 “INVALID_KEY_OR_REF”。然后进行测试我试试这个,

$gr = new GetRequest(); 
$gr->baseRef = new RecordRef(); 
$gr->baseRef->internalId = 387555; 
$gr->baseRef->type = "salesOrder"; 

现在它说“UNEXPECTED_ERROR”。

请帮助我的代码,并得到搜索结果后请指导我如何更新此SalesOrder记录。

在此先感谢。

回答

0

尝试参照此示例:

$service = new NetSuiteService(); 

$service->setSearchPreferences(false, 20); 

$emailSearchField = new SearchStringField(); 
$emailSearchField->operator = "startsWith"; 
$emailSearchField->searchValue = "j"; 

$search = new EmployeeSearchBasic(); 
$search->email = $emailSearchField; 

$request = new SearchRequest(); 
$request->searchRecord = $search; 

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

if (!$searchResponse->searchResult->status->isSuccess) { 
    echo "SEARCH ERROR"; 
} else { 
    echo "SEARCH SUCCESS, records found: " . $searchResponse->searchResult->totalRecords; 
} 
+0

谢谢您响应。是的,这是他们的search.php文件中的示例代码。这工作,也是这个代码是“雇员”。 我想要搜索的是SalesOrder搜索。我无法找到“SalesOrderSearchBasic”类来执行这样的搜索。 请帮忙。在此先感谢 – masterFly 2015-03-19 13:49:30

1

刚刚发现了这个答案 - 在这里留下它的后人着想(假设你正在使用的PHPToolKits的旧)

$service = new NetSuiteService(); 
$search = new TransactionSearchBasic(); 
$searchStringField = array('searchValue' => "SO1267816", 
         'operator' => 'is'); 
$search->tranId=$searchStringField; 
$request = new SearchRequest(); 
$request->searchRecord = $search; 
$searchResponse = $service->search($request); 

echo print_r($searchResponse,true); 
+0

你知道如何搜索其他领域?上面的例子是在tranid,你原来的问题是销售代表。我试图通过orderStatus ='_pendingApproval'进行搜索,但似乎无法使它工作。有任何想法吗? – 2016-06-08 21:18:43

+1

这适用于通过交易ID查找,谢谢。 – 2017-03-14 00:03:38