使用NetSuite PHP SDK时对事务搜索结果排序

使用NetSuite PHP SDK时对事务搜索结果排序,php,netsuite,Php,Netsuite,我有一些简单的代码,可以在NetSuite中搜索客户订单。订单首先返回。有没有一种简单的方法可以让最新的first退货?我尝试过查看我们正在使用的Ryan Winchester SDK的内部,并在google上进行了大量搜索,但令人惊讶的是,没有发现任何有用的东西 这是密码 <?php namespace App\Controller\Product; use App\Component\NetSuite\ServiceFactoryInterface; use NetSuite\Cla

我有一些简单的代码,可以在NetSuite中搜索客户订单。订单首先返回。有没有一种简单的方法可以让最新的first退货?我尝试过查看我们正在使用的Ryan Winchester SDK的内部,并在google上进行了大量搜索,但令人惊讶的是,没有发现任何有用的东西

这是密码

<?php
namespace App\Controller\Product;

use App\Component\NetSuite\ServiceFactoryInterface;
use NetSuite\Classes\CustomerSearchBasic;
use NetSuite\Classes\RecordRef;
use NetSuite\Classes\SearchEnumMultiSelectField;
use NetSuite\Classes\SearchMultiSelectField;
use NetSuite\Classes\SearchRequest;
use NetSuite\Classes\TransactionSearch;
use NetSuite\Classes\TransactionSearchBasic;
use Symfony\Component\Routing\Annotation\Route;

class QuickTest
{
    private ServiceFactoryInterface $netSuiteServiceFactory;

    public function __construct(ServiceFactoryInterface $netSuiteServiceFactory) {
        $this->netSuiteServiceFactory = $netSuiteServiceFactory;
    }

    /**
     * @Route(path="benstest")
     */
    public function bensTest()
    {
        $customerSearchBasic = new CustomerSearchBasic();

        $searchValue = new RecordRef();
        // @phpstan-ignore-next-line
        $searchValue->type = 'customer';
        $searchValue->internalId = (string) '14835';

        $searchMultiSelectField = new SearchMultiSelectField();
        setFields($searchMultiSelectField, ['operator' => 'anyOf', 'searchValue' => $searchValue]);
        $customerSearchBasic->internalId = $searchMultiSelectField;

        $transactionSearchBasic = new TransactionSearchBasic();

        $searchMultiSelectEnumField = new SearchEnumMultiSelectField();
        setFields($searchMultiSelectEnumField, ['operator' => 'anyOf', 'searchValue' => "_salesOrder"]);

        $transactionSearchBasic->type = $searchMultiSelectEnumField;
        $transactionSearch = new TransactionSearch();
        $transactionSearch->basic = $transactionSearchBasic;
        $transactionSearch->customerJoin = $customerSearchBasic;

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

        $nsService = $this->netSuiteServiceFactory->getNetSuiteService();

        $nsService->setSearchPreferences(false, 10);
        $response = $nsService->search($request);

        dd($response);

    }

}

我看不到一种方法可以在搜索过程中即时执行此操作。API似乎没有任何orderBy/sortBy类型控件,只有结果页大小。在我看来,要做到这一点,您需要在NetSuite中创建一个自定义搜索,然后使用一个
TransactionSearchAdvanced
对象,相应地设置
$savedSearchScriptId
(似乎期望从接口中获得“ID”字段)。将
TransactionSearch
作为
$criteria
属性附加到它上,您就可以上路了