SuiteScript 2.0 search.create возвращает пустые результаты - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь получить все заказы на продажу, которые ожидают выполнения в момент создания нового заказа на продажу.Это должно предупредить пользователя, что заказ на продажу уже выполняется.Код, который я использую, таков:

    function saleOrderInPendingFulfillmentAlreadyExists(scriptContext)
    {
        //Check if the customer already has an order which is pending fulfillment
        debugger;
        var idCustomer = scriptContext.currentRecord.getValue('entity');
        var recCustomer;
        if(idCustomer)
        {
            var filters = [
               ["mainline", "is", "T"], "and",
               ["type", "anyOf", search.Type.SALES_ORDER], "and",
               ["entity", "anyOf", idCustomer],
           ];

           var columns = [ "tranid" ];

           var searchQuery = search.create({
               "type": search.Type.TRANSACTION,
               "filters": filters,
               "columns": columns
           });

           var salesorders = searchQuery.run().getRange({"start": 0, "end": 1000}) || [];

        }
    }

При отладке кода переменная salesorders является пустым массивом, но я знаю, что в файле клиента есть как минимум 8 заказов на продажу.Что я делаю не так?

1 Ответ

0 голосов
/ 17 октября 2018

Ваша проблема в том, что поисковый фильтр type ожидает запись в другом формате, отличном от перечисления search.Type ('SalesOrd' вместо 'salesorder').Добро пожаловать в NetSuite!

Вы можете изменить фильтры на

var filters = [
   ["mainline", "is", "T"], "and",
   ["type", "anyOf", 'SalesOrd'], "and",
   ["entity", "anyOf", idCustomer],
];

или, что еще лучше

var searchQuery = search.create({
   "type": search.Type.SALES_ORDER,
   "filters": filters,
   "columns": columns
});

Кстати, вам обязательно стоит взглянуть на NetSuiteSearch Export Chrome Extension , который позволяет создавать поиск в пользовательском интерфейсе и автоматически преобразовывать его в SuiteScript.

...