2016-02-05 38 views
1

我試圖通過客戶名稱或InternalID獲取SO記錄。在NetSuite響應對象中,我獲得entity密鑰中的客戶名稱。NetSuite - 通過客戶內部ID獲取交易(SO)

[entity] => RecordRef Object 
     (
      [internalId] => 145498 
      [externalId] => 
      [type] => 
      [name] => nameNameName 
     ) 

現在我想通過客戶的InternalID,這是145498過濾SO記錄。

在SQL我要的是, select * from Transactions where entity.internalId = 145498;

我怎樣才能做到這一點?

請幫忙。提前致謝。

回答

0

我無法幫助您使用PHP,但以下使用Axis 1.4訪問SuiteTalk Web服務的Java代碼片段完全符合您的要求。希望您可以將其翻譯成PHP:

TransactionSearchBasic txnSrch = new TransactionSearchBasic(); 
    txnSrch.setRecordType(new SearchStringField(RecordType._salesOrder, SearchStringFieldOperator.is)); 
    txnSrch.setEntity(
      new SearchMultiSelectField(
        new RecordRef[] {new RecordRef(null, "145498", null, null)}, 
        SearchMultiSelectFieldOperator.anyOf 
      ) 
    ); 
+0

無效元素錯誤。 – fawzib

1

下面是使用PHP搜索客戶的代碼。您可以用您的打算記錄類型替換客戶。

$service = new NetSuiteService(); 
$request = new GetRequest(); 
$request->baseRef = new RecordRef(); 
$request->baseRef->internalId = "21"; 
$request->baseRef->type = "customer"; 
$getResponse = $service->get($request); 

if (!$getResponse->readResponse->status->isSuccess) { 
    echo "GET ERROR"; 
} else { 
    $customer = $getResponse->readResponse->record; 
    echo "GET SUCCESS, customer:"; 
    echo "\nCompany name: ". $customer->companyName; 
    echo "\nInternal Id: ". $customer->internalId; 
    echo "\nEmail: ". $customer->email . "\n"; 
} 

希望有所幫助!