Reputation: 71
Below are snippet of code...
<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);
}
I have two step human task process. I am facing strange problem upon complete of first task.
I am able to start process with created ksession. After start process first task getting created in database.
Once first Task get completed. Database Task table says it completed but next/2nd human task not being created.
What could be the issue?
Upvotes: 0
Views: 444
Reputation: 71
I solved this problem by recalling below snippet again in complete method. Looks like ksession was loosing human task handler.
LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(taskService, ksession, OnErrorAction.RETHROW);
humanTaskHandler.connect();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
Upvotes: 0