Поиск папки в FileNet ContentEngine и получение ее класса - PullRequest
2 голосов
/ 19 мая 2019

Я получил код для работы, чтобы искать папки и получать свойства.Ссылка: Поиск иерархии папок в FileNet для конкретной папки

Я пытаюсь получить имя класса объекта папки, чтобы различать документы разных типов, которые будут храниться в пользовательскихпапки.

Я перебрал коллекцию 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 Ответ

3 голосов
/ 20 мая 2019

Если вы используете * в своем предложении SELECT, тогда объект строки репозитория будет содержать все свойства объекта. Это также будет включать свойство под названием This. Это свойство является ссылкой на возвращаемый объект. Поэтому вы можете использовать следующий код для извлечения класса папки:

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

Вместо * вы также можете явно выбрать This. В этом случае ваш запрос будет выглядеть так:

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

Это ограничит объем данных, получаемых с сервера.

...