No jBPM, uma das features mais interessantes é a capacidade de processamento de Tarefas Humanas(HumanTasks), que por sua vez podem guardar várias sub-tarefas de cada usuário em cada fase(node) do workflow.
Quando você cria uma tarefa dentro de um task-node, como por exemplo: [Veja Link]
public void assign(Assignable assignable, ExecutionContext executionContext)
throws Exception {
assignable.setActorId((String) executionContext.getVariable(”rg”));
}
}
[/java]
Agora, fiz uma adaptação em um dos métodos do meu serviço para mostrar para o usuário X, quantas tarefas e em quais instâncias de processos eles tem tarefas pendentes:
[java]
@SuppressWarnings(”unchecked”)
@GET
@Path(”/realize/pagementosefa/{id}/{rg}”)
@ProduceMime(”text/plain”)
public String doPagamentoSefa(@PathParam(”id”)String id,
@PathParam(”rg”)String rg) {
JbpmContext ctx = JbpmConfiguration.getInstance().createJbpmContext();
try {
GraphSession graphSession = ctx.getGraphSession();
ProcessInstance processInstance = graphSession
.loadProcessInstance(new Long(id));
Collection taskList = null;
processInstance.getTaskMgmtInstance().getTaskInstances();
taskList = (Collection) ctx.getTaskList(rg);
processInstance.getContextInstance().setVariable
(”idsefa”, System.currentTimeMillis()+1L );
StringBuilder b = new StringBuilder();
for (TaskInstance taskInstance : taskList) {
b.append(String.format(
“User %s, the Task:: %s is waiting for your start. This is a task from the Process Id:%s\n”, taskInstance.getActorId(),
taskInstance.getName(),
taskInstance.getProcessInstance().getId()));
}
b.append(”Payment Id: ” + processInstance.getContextInstance().getVariable(”idsefa”).toString());
return b.toString() ;
} finally {
ctx.close();
}
}
[/java]
O resultado final de retorno para testes de Dubug seria, para o comando REST: http://localhost:8080/licenciamento/realize/pagementosefa/55/1111
User 1111, the Task:: entregar recibo is waiting for your start. This is a task from the Process Id: 55 User 1111, the Task:: pagar is waiting for your start. This is a task from the Process Id: 55 Payment Id: 1213310025945


Entries (RSS)