I want to query a folder and find all the documents within it, but it hasn't been working.
I'm using java jax to call documentum.
There are a few thousand documents in the folder, but all I get back are 350 form the frist call. All the rest of the calls set moreResults = true, but nothing is returned.
public List<DataObject> list(String path, SearchOptions searchOptions) {
PassthroughQuery query = new PassthroughQuery();
query.setQueryString(getBaseQuery(null, path, false));
query.getRepositories().add((((RepositoryIdentity) (getServiceContext().getIdentities().get(0))).getRepositoryName()));
QueryExecution queryEx = new QueryExecution();
queryEx.setQueryId("marty-test-list");
queryEx.setCacheStrategyType(CacheStrategyType.DEFAULT_CACHE_STRATEGY);
queryEx.setStartingIndex(0);
queryEx.setMaxResultCount(5000);
queryEx.setMaxResultPerSource(100000);
DataPackage resultsDataPackage = new DataPackage();
// this is where data gets sent over the wire
try {
QueryResult queryResult;
do {
queryResult = getServicePort().execute(query, queryEx, null);
if( logger.isDebugEnabled() ) {
logger.debug("Status == " + queryResult.getQueryStatus().getRepositoryStatusInfos().get(0).getStatus());
logger.debug("QueryId == " + query.getQueryString());
logger.debug("CacheStrategyType == " + queryEx.getCacheStrategyType());
}
if( queryResult.getQueryStatus().getRepositoryStatusInfos().get(0).getStatus() == Status.FAILURE) {
RepositoryStatusInfo info = queryResult.getQueryStatus().getRepositoryStatusInfos().get(0);
logger.error(info.getErrorMessage());
logger.error(info.getErrorTrace());
logger.error(info.getDetailedStatus().value());
break;
}
resultsDataPackage.getDataObjects().addAll(queryResult.getDataPackage().getDataObjects());
queryEx.setStartingIndex(queryEx.getStartingIndex() + queryResult.getDataPackage().getDataObjects().size());
} while(queryResult.getQueryStatus().isHasMoreResults());
return resultsDataPackage.getDataObjects();
} catch (SerializableException e) {
logger.error("Unable to execute query", e);
}
return null;
}
The basic query is
select *, r_version_label from dm_document (ALL) where FOLDER('MY FOLDER')