如何仅获取NetSuite指定文件夹内的文件(不含子文件夹文件)?
如何在NetSuite中仅检索指定文件夹下的文件(不包含子文件夹)
我明白你的困扰——默认情况下,用FileSearchBasic的folder字段搜索文件时,NetSuite会递归返回指定文件夹及其所有子文件夹里的内容,这和你想要的只获取目标文件夹下直接文件的需求不符。
这里的关键是NetSuite两个文件夹相关搜索字段的逻辑差异:
folder字段:会匹配目标文件夹以及所有子层级的文件夹,返回所有层级里的文件folderHierarchy字段:精确匹配指定的单个文件夹,仅返回该文件夹下的直接文件,不会递归子文件夹
所以你只需要把搜索字段从folder替换成folderHierarchy即可解决问题,修改后的代码如下:
var search = new FileSearchBasic { folderHierarchy = new SearchMultiSelectField { @operator = SearchMultiSelectFieldOperator.anyOf, @operatorSpecified = true, searchValue = new[] { new RecordRef { internalId = "1234" }} } }; var result = ns.search(search); if (result.status.isSuccess) { foreach (var record in result.recordList) { if (record is File file) { Console.WriteLine($"{file.folder.internalId} - {file.name}"); } } }
另外,因为你只需要匹配单个文件夹ID,也可以把操作符换成is,语义上更贴合单个值的匹配场景,效果完全一致:
@operator = SearchMultiSelectFieldOperator.is, @operatorSpecified = true,
执行修改后的代码后,你应该只会得到1234文件夹下的直接文件,不会再出现子文件夹1236里的processRawLocationData.js了。
内容的提问来源于stack exchange,提问作者Mike Robbins
相关产品推荐
相关产品推荐

