我能够在PHP中使api工作并通过内部id搜索客户 . 但是我有一个场景,我将通过自定义字段搜索客户 . 在Customer下,它有一个自定义选项卡,其中包含多个域名和域详细信息 .
例如 :
主要搜索条件:域名
在netsuite php api中这怎么可能?非常感谢任何帮助 . 我只是NetSuite的新手 . 我将如何修改此示例代码以按自定义字段进行搜索?
$service = new NetSuiteService();
$request = new GetRequest();
$request->baseRef = new RecordRef();
$request->baseRef->internalId = "1780";
$request->baseRef->type = "customer";
$getResponse = $service->get($request);
if (!$getResponse->readResponse->status->isSuccess) {
echo "GET ERROR";
} else {
$customer = $getResponse->readResponse->record;
//var_dump($customer);
echo "GET SUCCESS, customer:";
echo "\nCompany name: ". $customer->companyName;
echo "\nInternal Id: ". $customer->internalId;
echo "\nEmail: ". $customer->email;
echo "\nCustomerID: ". $customer->firstName;
}
好的,我正在尝试从egrubaugh360获取所有域的自定义记录 .
$service = new NetSuiteService();
$request = new GetRequest();
$request->baseRef = new CustomRecordRef();
$request->baseRef->internalId = "47";
//$request->baseRef->externalId = "xxxx";
$request->baseRef->typeId = "custom_list_domains";
$getResponse = $service->get($request);
var_dump($getResponse);
if (!$getResponse->readResponse->status->isSuccess) {
echo "GET ERROR";
} else {
var_dump($getResponse->readResponse->record);
echo "GET SUCCESS";
}
我不知道在“typeId”中输入什么,究竟是什么类型?它给我错误“无效的自定义记录类型键”
object(GetResponse)#8 (1) { ["readResponse"]=> object(ReadResponse)#9 (2) { ["status"]=> object(Status)#10 (2) { ["statusDetail"]=> array(1) { [0]=> object(StatusDetail)#11 (3) { ["code"]=> string(26) "INVALID_CSTM_RCRD_TYPE_KEY" ["message"]=> string(31) "Invalid custom record type key." ["type"]=> string(5) "ERROR" } } ["isSuccess"]=> bool(false) } ["record"]=> NULL } }
2 回答
以下是通过自定义字段搜索客户的一般示例 .
您可以修改以满足您的需要 .
而不是做
GetRequest
,你会想做一个SearchRequest
. 你的$request
应该成为CustomerSearchBasic
对象 . 然后,您可以使用$request->customFieldList
添加SearchCustom*Field
过滤器列表 . 例如,如果要过滤的自定义字段是文本字段,则构建新的SearchCustomStringField
. 然后,您将使用$service->search($request);
来执行搜索 . 有关完整的PHP Toolkit文档,请参阅here .听起来您的域名实际上可能是自定义子列表,而不仅仅是自定义字段 . 如果是这种情况,您将需要搜索自定义域记录而不是客户记录 . 然后,您可以查找客户为1780的所有域以及您可能需要的任何其他过滤器 .