Dienstag, 18. Dezember 2012

Xpert.Ivy Query Interface für Tasks und Cases

Bin gerade auf das "fluent" Query-Interface gestossen um Tasks und Cases zu suchen.

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


Keine Kommentare: