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
)
);
答
下面是使用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";
}
希望有所帮助!
无效元素错误。 – fawzib