首页 PHP 正文
352

NetSuite基本操作示例

  • yiqingpeng
  • 2018-09-17
  • 0
  •  
<?php
$service = new \NetSuiteService(null_resettable, ['exceptions' => true,  'connection_timeout' => 10]);
if (!empty($passport['token'])) {
    $tokenGenerator = new \TokenPassportGenerator($passport);
    $service->setTokenGenerator($tokenGenerator);
} else {
    $service->setPassport($passport['account'], $passport['email'], $passport['role'], $passport['password']);
}
$service->setSearchPreferences($bodyFieldsOnly = true, $pageSize = 50, $returnSearchColumns = true);

//search contact by email
$contactSearch = new \ContactSearchBasic();
$contactSearch->email = new \SearchStringField();
$contactSearch->email->operator = \SearchStringFieldOperator::is;
$contactSearch->email->searchValue = $email;
$request = new \SearchRequest();
$request->searchRecord = $contactSearch;
$response = $service->search($request);
if (!$response->searchResult->status->isSuccess) {
    throw new Exception("InternalID of email $email was fetched failed from NS! ");
}
if (0 === $response->searchResult->totalRecords) {
    return [];
}
$recordList = $response->searchResult->recordList->record;
return $recordList;

//update
$standardForm = new \RecordRef();
$standardForm->internalId = -40;
$_contact = new \Contact();
$_contact->customForm = $standardForm;
$_contact->internalId = $internalId; //old record internalId
$_contact->customFieldList = new \CustomFieldList();
$_contact->customFieldList->customField = [];
foreach ($record->customFieldList->customField as $i => $customField) {
    $_contact->customFieldList->customField[$i] = $customField;
    if ($customField->scriptId == 'custentitymarketing_newletters') {
        $_contact->customFieldList->customField[$i]->value = true;
    }
}
$request = new \UpdateRequest();
$request->record = $_contact;
$updateResponse = $service->update($request);
if (!$updateResponse->writeResponse->status->isSuccess) {
    return false;
}
return true;

//search contact by 'internalId' list
$contactSearch = new \ContactSearchBasic();
$contactSearch->internalId = new \SearchMultiSelectField();
$contactSearch->internalId->operator = \SearchMultiSelectFieldOperator::anyOf;
$contactSearch->internalId->operatorSpecified = true;
$idBuff = [];
$idTarget = [3546069, 3548689, 3966];
foreach ($idTarget as $id) {
    $recordRef = new \RecordRef();
    $recordRef->internalId = $id;
    $idBuff[] = $recordRef;
}
$contactSearch->internalId->searchValue = $idBuff;
$request = new \SearchRequest();
$request->searchRecord = $contactSearch;
$response = $service->search($request);
$recordList = $response->searchResult->recordList->record;
return $recordList;

正在加载评论...