声称后,JBPM人工任务状态没有变化?

时间:2013-01-16 12:39:54

标签: jbpm

成功执行方法

后,人工任务状态未发生变化(仍处于就绪状态)
private void claimTask(TaskClient taskClient, String taskOwnerName, TaskSummary task) {
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
taskClient.claim(task.getId(), taskOwnerName, operationResponseHandler);
logger.debug("clamed task status is: " + task.getStatus());

}

logger表示任务仍处于 Ready 状态。状态必须移至保留状态。

1 个答案:

答案 0 :(得分:1)

您正在使用的TaskSummary对象是一个未直接链接到底层数据库的分离对象。在执行“索赔”后,它并未反映数据库中任务的最新状态。方法。对于任务的最新状态,我建议在记录状态之前先检索它,如下所示:

private void claimTask(TaskClient taskClient, String taskOwnerName, TaskSummary task) {
  BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
  taskClient.claim(task.getId(), taskOwnerName, operationResponseHandler);
  BlockingGetTaskResponseHandler getTaskHandler=new BlockingGetTaskResponseHandler();
  taskClient.getTaskById(task.getId(),getTaskHandler);
  logger.debug("claimed task status is: " + getTaskHandler.getTask().getStatus());
}