在 FileNet ContentEngine 中搜索文件夹并检索其 class
Searching for a folder in FileNet ContentEngine and retrieving its class
我已经获得了用于搜索文件夹和检索属性的代码。参考:
我正在尝试检索文件夹对象的 class 名称,以便区分将存储在自定义文件夹中的不同类型的文档。
我遍历了 Properties 集合,但是 class 的名称不是 属性。
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() 但那只是 returns: RepositoryRowImpl
如果您在 SELECT 子句中使用 *
,则存储库行对象将包含该对象的所有属性。这还将包括一个名为 This
的 属性。此 属性 是对返回对象的引用。因此,您可以使用以下代码来获取文件夹的 class:
EngineObject eo = row.getProperties().getEngineObjectValue("This");
String className = eo.getClassName();
除了 *
,您还可以显式 select This
。在这种情况下,您的查询将是这样的:
String sqlStatement = "SELECT This,Id FROM [Folder] WHERE ([FolderName] LIKE '%MyFolder%')";
这将限制从服务器获取的数据量。
我已经获得了用于搜索文件夹和检索属性的代码。参考:
我正在尝试检索文件夹对象的 class 名称,以便区分将存储在自定义文件夹中的不同类型的文档。
我遍历了 Properties 集合,但是 class 的名称不是 属性。
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() 但那只是 returns: RepositoryRowImpl
如果您在 SELECT 子句中使用 *
,则存储库行对象将包含该对象的所有属性。这还将包括一个名为 This
的 属性。此 属性 是对返回对象的引用。因此,您可以使用以下代码来获取文件夹的 class:
EngineObject eo = row.getProperties().getEngineObjectValue("This");
String className = eo.getClassName();
除了 *
,您还可以显式 select This
。在这种情况下,您的查询将是这样的:
String sqlStatement = "SELECT This,Id FROM [Folder] WHERE ([FolderName] LIKE '%MyFolder%')";
这将限制从服务器获取的数据量。