NetSuite PHP 工具包时间条目搜索

问题描述

<?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 匹配。下面是配置文件的屏幕截图。

enter image description here