NetSuite - 通过客户内部ID获取交易(SO)

问题描述:

我试图通过客户名称或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;

我怎样才能做到这一点?

请帮忙。提前致谢。

我无法帮助您使用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

下面是使用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"; 
} 

希望有所帮助!