Netsuite 使用suitescript保存的搜索的列名称

Netsuite 使用suitescript保存的搜索的列名称,netsuite,suitescript,Netsuite,Suitescript,我使用的是套件脚本(API版本为1.0)。我已在netsuite帐户中创建了一个已保存的事务搜索。 现在,我想将保存的搜索中的数据拉入数据库,但在此之前,我只想在映射屏幕上列出保存的搜索中存在的列 为此,我写了以下脚本: function GetColumnName() { var s = nlapiLoadSearch('transaction', 'customsearchtestsavedsearchwithcustfield'); var columns

我使用的是套件脚本(API版本为1.0)。我已在netsuite帐户中创建了一个已保存的事务搜索。 现在,我想将保存的搜索中的数据拉入数据库,但在此之前,我只想在映射屏幕上列出保存的搜索中存在的列

为此,我写了以下脚本:

function GetColumnName()
{
        var s = nlapiLoadSearch('transaction', 'customsearchtestsavedsearchwithcustfield');
        var columns = s.getColumns();
        return columns;
}
但在上面的代码中,getColumns函数不起作用,netsuite给出了下面的错误(错误并没有说明太多)

有谁能帮我一下吗


谢谢

我相信这会给你带来你想要的结果。只需传入nlobjSearch对象,它将返回一个列名数组。这被验证为功能正常,如果您仍然收到错误,则加载的搜索有问题,您应该在UI中诊断此搜索

function searchColTitles(search) { // search is the nlobjSearch from an nlapiLoadSearch(), or nlapiCreateSearch()

var columns = [];
var c;
var cName;
var columnNames = [];


columns = search.getColumns();

for (c = 0; columns.length && c < columns.length; c += 1) {
    cName = columns[c].label;
    if (!cName) {
        cName = columns[c].name;
    }
    columnNames.push(cName);
}

return columnNames;
函数searchColTitles(search){//search是来自nlapiLoadSearch()或nlapireatesearch()的nlobjSearch
var列=[];
var c;
var-cName;
var columnNames=[];
columns=search.getColumns();
对于(c=0;columns.length&&c

}

您在此保存的搜索中设置了哪些列?帐户、部门、金额和其他一些列,包括自定义段、自定义正文字段。今天,我可以在Netsuite调试器中调试脚本,并找到有关错误的更多详细信息,现在错误为:意外错误8/17/2017 21:54:25.887引用错误:“nlapiLoadSearch”没有定义。(adhoc$-1$debugger.user#26)。很抱歉我的上述评论。错误只出现在SuiteScript2.0中,在SuiteScript1.0中有效。还有一件事,我的脚本类型是RESTLET我这里有一系列关于从SuiteScript1.0过渡到2.0的视频:谢谢,上面的脚本在SuiteScript1.0中运行良好,但在2.0中它的错误是“nlapiLoadSearch未定义”@user2626026正确,任何以nlapi开头的都是1.0 api。对于2.0,您需要加载搜索模块,然后使用search.loadSearch({options})。如果需要,请查看帮助文档以了解有关2.0的更多信息。谢谢。我在netsuite上的脚本具有API级别1.0。因此,当使用1.0在netsuite上调试时,它可以工作,但当从示例c#应用程序访问部署的脚本时,会出现上述错误。当我从c#调用Restlet时,是否有办法知道netsuite使用的api?我正在标记您的anwser是否正确,因为它在SuiteScript 1中工作正常。0@user2626026API版本将完全取决于创建RESTlet的版本。您必须事先知道您调用的RESTlet是用1.0或2.0编写的。
function searchColTitles(search) { // search is the nlobjSearch from an nlapiLoadSearch(), or nlapiCreateSearch()

var columns = [];
var c;
var cName;
var columnNames = [];


columns = search.getColumns();

for (c = 0; columns.length && c < columns.length; c += 1) {
    cName = columns[c].label;
    if (!cName) {
        cName = columns[c].name;
    }
    columnNames.push(cName);
}

return columnNames;