问题描述
<?PHP
// Token-based Authentication
require 'vendor/autoload.PHP';
use NetSuite\NetSuiteService;
$config = array(
// required -------------------------------------
"endpoint" => "2019_1","host" => "https://webservices.netsuite.com","email" => "[email protected]","password" => "Mypassword","role" => "12345","account" => "7654321","app_id" => "XXXXXXX-XXXXX-XXXXX-XXXX-XXXXXXXXX",);
$service = new NetSuiteService($config);
$service->setSearchPreferences(true,20);
use NetSuite\Classes\SearchDateField;
use NetSuite\Classes\TimeEntrySearch;
use NetSuite\Classes\TimeEntrySearchBasic;
use NetSuite\Classes\TimeEntrySearchAdvanced;
use NetSuite\Classes\SearchRequest;
//Search Date
$SearchField = new SearchDateField();
$SearchField->searchValue = '2021-05-01T00:16:11+00:00';
$SearchField->operator = "after";
$ItemSearchBasic = new TimeEntrySearchBasic();
$ItemSearchBasic->lastModified = $SearchField;
$ItemSearch = new TimeEntrySearch();
$ItemSearch->basic = $ItemSearchBasic;
$search = new TimeEntrySearchAdvanced();
$search->columns = "TimeEntrySearchRow";
$search->criteria = $ItemSearch;
$request = new SearchRequest();
$request->searchRecord = $search;
$searchResponse = $service->search($request);
echo "<pre>";print_r($searchResponse);die();
if (!$searchResponse->searchResult->status->isSuccess) {
echo "SEARCH ERROR";
} else {
echo "SEARCH SUCCESS,records found: " . $searchResponse->searchResult->totalRecords . "\n";
$records = $searchResponse->searchResult->searchRowList->searchRow;
foreach ($records as $record) {
echo "Name: " . $record->basic->name->searchValue . "\n";
}
}
?>
我正在尝试通过 lastModified 运算符“After”获取 NetSuite 过滤器中的最后一个时间条目,我不知道我做错了什么。
错误消息是:-> 您的 NetSuite 帐户中未启用“时间表”功能。
我需要激活什么?
解决方法
请使用基于令牌的身份验证而不是 APP ID,并且主机应与公司信息下提到的 SOAP URL 匹配。下面是配置文件的屏幕截图。