如何从netsuite的scriplet获取脚本名称和ID

时间:2018-07-17 10:01:45

标签: netsuite scriplets

我们如何在数组中获取所有脚本名称和脚本ID,我希望它们显示在应用程序的下拉列表中。 这是我的代码,只给了我一个文件名,我没有得到这样的外部URL

https://4512314-sb1.restlets.api.netsuite.com/app/site/hosting/restlet.nl?script=692&deploy=1

这是我的代码

function searchScriptFile()
{

  var folderid = 'SuiteScripts';

    var filters = new Array();
    filters[0] = new nlobjSearchFilter('name', null, 'is', folderid);

    var columns = new Array();
    var filename = new nlobjSearchColumn('name', 'file');
    var fileid = new nlobjSearchColumn('internalid', 'file');
    var path = new nlobjSearchColumn('url', 'file');

    columns[0] = filename;
    columns[1] = fileid;
    columns[2] = path;

    var searchResult = nlapiSearchRecord('folder', null , filters , columns);

    var res = new Array();
    if(searchResult) {
        for (var i = 0 ; i < searchResult.length; i++) {
        thisfile = searchResult[i].getValue(filename);
        thisfileid = searchResult[i].getValue(fileid);
        thispath = searchResult[i].getValue(path);
          res[i] =  thisfile + ' ' + thisfileid + ' ' + thispath;
        nlapiLogExecution('DEBUG', 'Test', thisfileid + ' ' + thisfile);
        }
      return res[27];
    }
}

2 个答案:

答案 0 :(得分:0)

您需要搜索脚本部署,而不是文件柜中的文件。

var scriptdeploymentSearch = nlapiSearchRecord("scriptdeployment",null,
[
], 
[
   new nlobjSearchColumn("title").setSort(false), 
   new nlobjSearchColumn("scriptid"), 
   new nlobjSearchColumn("script"), 
   new nlobjSearchColumn("scriptid","script",null), 
   new nlobjSearchColumn("recordtype"), 
   new nlobjSearchColumn("status"), 
   new nlobjSearchColumn("isdeployed"), 
   new nlobjSearchColumn("scripttype"), 
   new nlobjSearchColumn("ismobilemenu"), 
   new nlobjSearchColumn("apiversion","script",null)
]
);

答案 1 :(得分:0)

您需要在脚本部署(如 dcrs 上面的建议)上运行搜索,而不是在文件夹上运行。尽管我找不到任何方法来获取脚本部署的 externalurl ,但猜想NetSuite还不支持它。 这是ScriptDeploymemts上的基本代码

search.create({ 
  type: 'scriptdeployment', 
  columns: ['script.scriptfile', 'title',
    'scriptid', 'script.apiversion']
}).run().getRange({ start: 0, end: 1000 });