在 FileNet 中搜索特定文件夹的文件夹层次结构

Posted

技术标签:

【中文标题】在 FileNet 中搜索特定文件夹的文件夹层次结构【英文标题】:Search folder hierarchy in FileNet for a particular folder 【发布时间】:2019-05-12 10:06:34 【问题描述】:

我是从 Java 访问 FileNet CE 的新手。

通过我的测试程序,我可以连接、创建文件夹、上传文件和检索列表。

现在,我需要在 ObjectStore 中找到一个文件夹。也就是说,给定文件夹内的文件夹层次结构: 文件夹 1 -- 文件夹1a -- 文件夹1b ---- 文件夹1b1 ---- 文件夹1b2 -- 文件夹1c ---- 文件夹1c1 ---- 文件夹1c2 文件夹 2 ...

如何根据名称搜索文件夹?它可能有 N 层深。

同样,如何在名称中使用通配符进行搜索?

同样,我创建了一个文件夹的子类 (PersonnelFolder),并为其赋予了一些属性(人员 ID、部门等)。如何搜索人员 ID?即在给定类的对象中搜索属性?

【问题讨论】:

【参考方案1】:

在Documentation 上搜索,没有关于它的示例,只是针对特定路径的代码的 sn-p。 像这样:

获取子路径的父文件夹:

String childFolderPath = "/Loans/MyLoans";
Folder currentFolder = Factory.Folder.fetchInstance(os, childFolderPath, null);
Folder parent = currentFolder.get_Parent();

获取路径中直接包含的文件夹

String folderPath = "/Loans";
Folder currentFolder = Factory.Folder.fetchInstance(os, folderPath, null);
FolderSet childFolders = currentFolder.get_SubFolders();

顺便说一句,通过 FEM 进行研究,很容易构建一个只寻址部分名称的 sql。像这样:

SELECT * FROM [Folder] WHERE ([FolderName] like '%Folder1a%')

与自定义元数据类似:

SELECT * FROM [YourFolderSubType] WHERE ([YourCustomAttribute] = 'yourValue')

然后,访问属性PathName 会为您提供完整的路径。或者,您也可以只检索它的 ID 以便从中获取 Folder 对象。

您可以尝试从 API 执行类似的查询,然后将每个结果转换为 Folder 对象以便对其进行处理。

一个例子(未经测试):

SearchSQL sqlObject = new SearchSQL(sqlStatement);
RepositoryRowSet rowSet = searchScope.fetchRows(sqlObject, null, null, new Boolean(true));
Iterator iter = myRows.iterator();
while (iter.hasNext()) 
    RepositoryRow row = (RepositoryRow) iter.next();
    row.getProperties().getStringValue("ID");
    com.filenet.api.core.Folder folder = Factory.Folder.fetchInstance(os, id, null);

希望这会有所帮助。

【讨论】:

谢谢。让代码工作。 “文件夹”表查找嵌套的文件夹以及自定义文件夹。我也会尝试您的自定义元数据代码。问题:“文件夹”表有哪些列?你有文档的链接吗?问题:从您的代码中,我看到自定义文件夹类有自己的表。正确的?那么这样的文件夹会出现在“Folder”表以及“CustomFolder”表中吗?另外,还有指向“文档”表的链接吗? 很高兴为您提供帮助。这是文件夹的文档:ibm.com/support/knowledgecenter/en/SSNW2F_5.5.0/…。请注意,如果您安装 FEM 或 ACCE,您可以预先测试您的查询并查看对象。对于您的问题:是的,自定义文件夹是独立的类,但它们继承自 Folder(它们是它的子类);所以是的,搜索“文件夹”也会检索它们;不,“文档”与“文件夹”是分开的。 事先测试一下?那将是一个很好的节省时间。如何?不,我当然知道 Document & Folder 是不同的类。我的意思是,你有显示文件夹和文档类结构的链接吗? 不,不幸的是我没有这个结构作为例子。但是,关于我所说的 UI,您通常可以使用 server_address:port/acce 访问 ACCE(其中服务器地址和端口是 CE 的),而 FEM 是一个(现已弃用)客户端,您可以在 Windows 上安装它。搜索“Filenet Enterprise Manager”。

以上是关于在 FileNet 中搜索特定文件夹的文件夹层次结构的主要内容,如果未能解决你的问题,请参考以下文章

如何在当前文件夹和所有子文件夹中的所有文件中搜索特定文件内容[重复]

是否可以在整个设备中搜索特定扩展名的文件?

在目录中搜索特定文件名

Javascript,Nodejs:在文件中搜索特定的单词字符串

C++ 在文本文件中搜索特定字符串并返回该字符串所在的行号

Erlang - 在外部文件中搜索特定字符串,如果不存在则追加文件