我们如何在数组中获取所有脚本名称和脚本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];
}
}
答案 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 });