Hi,I started evaluating Activiti and I am quite impressed. It was very easy to write an example workflow and use the API, straight foward, very nice, thanks for the execellent work.I implemented a simple order management with these nodes:Start -> UserTask -> ServiceTask -> EndThe UserTask sets a variable that decides if the order goes to the ServiceTask or to an EndError node, this works fine so far.Concerning performance I am stuck at the moment because my TaskQuery is way too slow. I am not sure if I misuse Activiti or if a feature is missing.When I start the workflow I set a variable "department" = "dep1". This way I started 100.000 Workflows for 500 different departments - this was very fast as well.To get the tasks I do the following at the moment:TaskQuery taskQuery = taskService.createTaskQuery();
taskQuery.taskDefinitionKey("userTask");
taskQuery.taskName("Allow order");
List<Task> taskList = taskQuery.list();
for (Task task : taskList) {
Map<String, Object> variables = taskService.getVariables(task.getId());
final String taskDepartment = (String)variables.get("department");
if (taskDepartment.matches("dep1")) {
System.out.println("Hit!");
}
}Obviously this runs forever. 100.000+1 SQL Queries are executed, then I have to throw away 99.800 of the results.Querying the process instances on the other hand is very fast:ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery();
query.variableValueEquals("department", "dep1");
rc = query.list();So this should be possible for Tasks as well?Thanks,Thomas