Netsuite SuiteScript 不返回列的值

Netsuite SuiteScript not returning value of column

我在通过 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') 始终为空。我似乎找不到我在这里做错了什么。

尝试使用列对象及其索引获取值,如下所示:

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;
}