在FileNet ContentEngine中搜索文件夹并检索其类

时间:2019-05-19 18:18:18

标签: java filenet-p8 filenet-content-engine

我已经获得了用于搜索文件夹和检索属性的代码。参考:Search folder hierarchy in FileNet for a particular folder

我正在尝试检索文件夹对象的类名,以便区分将存储在自定义文件夹中的文档的不同类型。

我遍历了Properties集合,但是类的名称不是属性。

String sqlStatement = "SELECT * FROM [Folder] WHERE ([FolderName] LIKE '%MyFolder%')";
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();
    String folderID = row.getProperties().getIdValue("ID").toString();
}

我尝试了row.getClass(),但只返回了:RepositoryRowImpl

1 个答案:

答案 0 :(得分:2)

如果在SELECT子句中使用*,则存储库行对象将包含该对象的所有属性。这还将包括一个名为This的属性。此属性是对返回的对象的引用。因此,您可以使用以下代码来获取文件夹的类:

EngineObject eo = row.getProperties().getEngineObjectValue("This");
String className = eo.getClassName();

除了*,您还可以显式选择This。在这种情况下,您的查询将如下所示:

String sqlStatement = "SELECT This,Id FROM [Folder] WHERE ([FolderName] LIKE '%MyFolder%')";

这将限制从服务器获取的数据量。