SuiteScript 2.0 - логический оператор для нескольких фильтров - PullRequest
0 голосов
/ 05 июня 2019

У меня есть сохраненный поиск транзакции в моей учетной записи Netsuite, и этот сохраненный поиск имеет некоторое условие фильтрации в пользовательском интерфейсе Netsuite.

Используя SuiteScript 2.0, я загружаю этот поиск и беру копию всех фильтров, определенных в пользовательском интерфейсе Netsuite (скажем, defaultfilters), а затем применяю фильтр для «trandate» в качестве filterExpression, а затем отправляю фильтры defaultfilters в коллекцию фильтров savesearch.

но происходит то, что netsuite рассматривает только фильтр «trandate», а не те, которые определены в Netsuite.

Я предполагаю, что между двумя фильтрами применяется логический оператор «ИЛИ».

та же проблема, которая обсуждалась в другом запросе: SuiteScript 2.0 search.createFilter с формулой не работает

, пожалуйста, сообщите мне об этой проблеме.

Спасибо

1 Ответ

1 голос
/ 06 июня 2019

Вы можете сделать следующее, чтобы добавить searchFilters или FilterExpressions

  1. Загрузить поиск

    var savedSearch = search.load({ id: SEARCH_ID });

  2. Pushпользовательские фильтры в объекте savedSearch, как показано ниже:

    // for searchFilter
    savedSearch.filters.push(search.createSearchFilters(SEARCH_FILTER_OBJECT);
    
    // for filter expression
    var filterExpressions = savedSearch.filterExpressions;
    filterExpressions.push('and', [FIELDID, SEARCH_OPERATOR, VALUES]);
    savedSearch.filterExpressions = filterExpressions;
    

Что касается использования формулы в filterExpressions, если вы используете formulanumeric в качестве fieldName, ваш оператор должен быть equalto ине is, тогда как если вы используете formulatext в качестве fieldName, вы можете использовать оператор is согласно Операторам поиска NetSuite

...