Netsuite SuiteScript не возвращает значение столбца

У меня возникли проблемы с получением значения столбца в сохраненном поиске через SuiteScript. Ниже мой код:

function KW_AutoCloseOldRA() {
    var search = nlapiLoadSearch('transaction', 'customsearchopen_ras', null, null);
    var columns = search.getColumns();
    for (i = 0; i < columns.length; i++) {
        nlapiLogExecution('DEBUG', 'Column #' + i + ' is ' + columns[i].getName());
    }
    var results = search.runSearch();
    if (results) {
        results.forEachResult(getResults);
    }
}

function getResults(res) {
    var message = res.getValue('tranid');
    nlapiLogExecution('DEBUG', 'Result ' + message);
    return true;
}

Поиск производит два столбца, и имена этих столбцов выводятся, как и ожидалось, в записи DEBUG (internalid - это столбец 0, а tranid - столбец 1). Однако при просмотре результатов res.getValue ('tranid') всегда имеет значение null. Кажется, я не могу понять, что делаю здесь не так.


person John    schedule 16.05.2017    source источник


Ответы (1)


Попробуйте получить значение, используя объект columns и его индекс следующим образом:

function KW_AutoCloseOldRA() {
    var search = nlapiLoadSearch('transaction', 'customsearchopen_ras', null, null);
    var columns = search.getColumns();
    for (i = 0; i < columns.length; i++) {
        nlapiLogExecution('DEBUG', 'Column #' + i + ' is ' + columns[i].getName());
    }
    var results = search.runSearch();
    if (results) {
        results.forEachResult(getResults);
    }
}

function getResults(res) {
    var cols =  res.getAllColumns();
    var message = res.getValue(cols[1]);
    nlapiLogExecution('DEBUG', 'Result ' + message);
    return true;
}
person Adolfo Garza    schedule 16.05.2017
comment
Это сработало. Спасибо! - person John; 16.05.2017