-4

I'm trying this code to list the files inside cabinet's folder in NetSuite, but I can list only the files. I need to list the folders inside the folder with the ID: 28

The code I'm using:

var folder = 28;

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

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

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

var searchResult = nlapiSearchRecord('folder', null , filters , columns);
if(searchResult) {
for (var i = 0 ; i < searchResult.length; i++) {
    alert(searchResult[i].getValue(filename)+searchResult[i].getValue(fileid));
    };
};

The result:

warning File1.txt1938   11/22/2016 17:30:08.693
warning File2.txt1636   11/22/2016 17:30:08.693
warning File3.txt1939   11/22/2016 17:30:08.693
warning File4.txt4601   11/22/2016 17:30:08.693

this is correct, but it's listing only files, not folders?

Thanks!

eXtreme
  • 244
  • 3
  • 18

2 Answers2

2

Perform a UserEvent BeforeLoad function. All files have a parent folder ID.

// pass in the internal id of the file's parent folder
var folder = 415 // the folder ID we care about

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

//file name and file internal ID
var columns = new Array();
var filename = new nlobjSearchColumn('name', 'file');
var fileid = new nlobjSearchColumn('internalid', 'file');

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

// perform the search and loop through the findings
var searchResult = nlapiSearchRecord('folder', null , filters , columns);
if(searchResult) {
for (var i = 0 ; i < searchResult.length; i++) {
    var f = searchResult[i];
    //do what you want with f here
    };
};

Credit: http://blog.prolecto.com/2014/01/09/get-netsuite-list-of-files-from-folder/

bluejay92
  • 161
  • 6
  • 21
1

I was able to list the subfolders of folder with this code:

var folder = 3232;

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

var columns = new Array();
var filename = new nlobjSearchColumn('name');
var fileid = new nlobjSearchColumn('internalid');

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

var searchResult = nlapiSearchRecord('folder', null , filters , columns);
if(searchResult) {
for (var i = 0 ; i < searchResult.length; i++) {
    alert(searchResult[i].getValue(filename)+searchResult[i].getValue(fileid));
    };
};
eXtreme
  • 244
  • 3
  • 18
  • 1
    Looks like the trick is when doing a folder search, the parent folder is under the "parent" attribute, while when doing a file search it's under the "folder" attribute. Makes ... sense? – Darren Ringer Oct 05 '18 at 18:10