NetSuite: я хочу отредактировать сохраненный поиск и сохранить его. Но фильтры сохраненного поиска не имеют значения - PullRequest
0 голосов
/ 10 октября 2018

Код suitescript 1.0 выглядит следующим образом:

function clientFieldChanged(type, name, linenum) {
if (name == 'class') {
    var brand_id = nlapiGetFieldValue('class');
    if (brand_id) {
        console.log(brand_id);
        var itemSearch = nlapiLoadSearch(null,'customsearch_item_brand_search');
        var itemSearchFilter = new nlobjSearchFilter('custitem30', null, 'anyof',brand_id);
        var filters = [itemSearchFilter];
        itemSearch.setFilters(filters);
        itemSearch.saveSearch();
    }
}

} Но после выполнения этого скрипта фильтры сохраненного поиска становятся пустыми. SuiteScript 1.0 сохранен Поиск

Код suitescript 2.0 выглядит следующим образом:

function fieldChanged(scriptContext) {
    if(scriptContext.fieldId == 'class'){
        var currentRecord = scriptContext.currentRecord;
        var brand_id = currentRecord.getValue({fieldId:'class'});
        if(brand_id){
            var itemSearch = search.load({
                id: 'customsearch_item_brand_search'
            });
            var itemSearchFilter = search.createFilter({
                name:'custitem30',
                operator:search.Operator.ANYOF,
                values:brand_id
            });
            var filtersArray = [itemSearchFilter];
            itemSearch.filters = filtersArray;
            itemSearch.save();
        }
    }
}

После выполнения этого скрипта фильтры сохраненного поиска верны. Поиск сохранен SuiteScript 2.0

Чтоможно сделать так, чтобы сохраненный Поиск SuiteScript 1.0 соответствовал поиску, сохраненному в SuiteScript 2.0?

Кстати, nlapiRefreshLineItems - это API suitescript 1.0, но в версии 2.0 нет эквивалента. Если я хочу обновить элементтолько в suitescript 2.0, как это сделать?

Ответы [ 2 ]

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

Почему бы и нет?

  1. Загрузить поиск
  2. Получить тип / столбцы / фильтры
  3. Изменить фильтры
  4. Создать другой поиск
  5. Использовать предыдущий конфиг

Это должно работать.

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

В коде 1.0 измените setFilters() на addFilters(), поэтому ваш код должен быть:

function clientFieldChanged(type, name, linenum) {
    if (name == 'class') {
        var brand_id = nlapiGetFieldValue('class');
        if (brand_id) {
            console.log(brand_id);
            var itemSearch = nlapiLoadSearch(null,'customsearch_item_brand_search');
            var itemSearchFilter = new nlobjSearchFilter('custitem30', null, 'anyof',brand_id);
            var filters = [itemSearchFilter];
            itemSearch.addFilters(filters);
            itemSearch.saveSearch();
        }
    }
}

Это работает для меня, в то время как setFilters выдало ошибку.

...