3

私はphpでAPIを動作させ、内部IDで顧客を検索することができました。ただし、カスタム フィールドで顧客を検索するシナリオがあります。[Customer and it has custom] タブには、複数のドメイン名とドメインの詳細が含まれています。

例えば ​​:

主な検索条件 : ドメイン名

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;
}

OK、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 } }
4

3 に答える 3

3

カスタムフィールドで顧客を検索する一般的な例を次に示します。

必要に応じて変更できます。

$NSservice = new NetSuiteService();
$NSservice->setSearchPreferences(false, 10);

$cs = new CustomerSearch();
$csb = new CustomerSearchBasic();

$domain = new SearchCustomStringField();
$domain->internalId = 'yourcustomfieldinternalid';
$domain->searchValue = 'text you are searching for';
$domain->operator = 'is';

$scfl = new SearchCustomFieldList();
$scfl->customField = array($domain);
$csb->customFieldList = $scfl;
$cs->basic = $csb;

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

$searchResponse = $NSservice->search($request);
于 2013-10-21T21:02:31.793 に答える
1

を実行する代わりにGetRequest、実行する必要がありますSearchRequest。あなたはオブジェクト$requestになるべきです。CustomerSearchBasicその後、 を使用してフィルター$request->customFieldListのリストを追加できます。たとえば、フィルタリングしているカスタム フィールドがテキスト フィールドの場合は、SearchCustom*Field新しいを作成します。SearchCustomStringField次に、 を使用$service->search($request);して検索を実行します。PHP Toolkit の完全なドキュメントについては、こちらを参照してください。

ドメイン名は、単なるカスタム フィールドではなく、実際にはカスタム サブリストのようです。この場合、Customer レコードの代わりにカスタム ドメイン レコードを検索する必要があります。次に、Customer が 1780 であるすべてのドメインと、必要なその他のフィルターを探すことができます。

于 2013-08-13T17:25:26.653 に答える