以下是代码片段......
<bean id="systemEventListener" class="org.drools.SystemEventListenerFactory" factory-method="getSystemEventListener" />
<bean id="internalTaskService" class="org.jbpm.task.service.TaskService" >
<constructor-arg index="0" ref="jbpmEMF"/>
<constructor-arg index="1" ref="systemEventListener" />
</bean>
LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(taskService, ksession, OnErrorAction.RETHROW);
humanTaskHandler.connect();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
public void completeTask(Long taskId, String userId, Object result) {
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
Map<String, Object> taskVars = (null != result) ? (HashMap<String, Object>) result : Collections.EMPTY_MAP;
taskService.completeWithResults(taskId, userId, taskVars);
}
我有两步人工任务流程。完成第一项任务后,我面临着奇怪的问题。
我可以使用创建的ksession启动进程。启动后,首先在数据库中创建任务。
第一个任务完成后。数据库任务表说它已完成,但未创建下一个/第二个人工任务。
可能是什么问题?
答案 0 :(得分:0)
我通过在完整方法中再次调用下面的代码段解决了这个问题。看起来ksession正在失去人工任务处理程序。
LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(taskService, ksession, OnErrorAction.RETHROW);
humanTaskHandler.connect();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);