Hier ein Beispiel um alle Tasks in einem bestimmten Status zu finden:
import ch.ivyteam.ivy.workflow.TaskState;
import ch.ivyteam.ivy.workflow.ITask;
import ch.ivyteam.ivy.workflow.query.TaskQuery;
TaskQuery query = ivy.wf.getTaskQueryExecutor().createTaskQuery()
.where().state().isEqual(TaskState.FAILED)
.orderBy().name();
List<ITask> results = ivy.wf.getTaskQueryExecutor().getResults(query);
for(ITask task : results) {
// Do something
}
Zum Vergleich das "findTasks"-API:
import ch.ivyteam.ivy.workflow.PropertyOrder;
import ch.ivyteam.ivy.workflow.IPropertyFilter;
import ch.ivyteam.ivy.workflow.TaskState;
import ch.ivyteam.ivy.workflow.ITask;
import ch.ivyteam.ivy.persistence.IQueryResult;
IPropertyFilter filter = ivy.wf.createTaskPropertyFilter(
ch.ivyteam.ivy.workflow.TaskProperty.STATE,
ch.ivyteam.logicalexpression.RelationalOperator.EQUAL,
TaskState.FAILED);
List<PropertyOrder> order;
order.add(new PropertyOrder(ch.ivyteam.ivy.workflow.TaskProperty.NAME));
IQueryResult result = ivy.wf.findTasks(filter,order,0,-1,true);
for(ITask task : result.getResultList()) {
// Do something
}
https://sourceforge.net/p/xivy/wiki/IvyCookbook/
http://www.ivyteam.ch/downloads/XIVY/4.3.0/doc/PublicAPI/ch/ivyteam/ivy/persistence/query/package-summary.html