/** End Task Instance */ public static void endTaskInstance(long taskInstanceId, String transitionName) throws WorkflowException { log.debug("endTaskInstance({}, {})", new Object[] {taskInstanceId, transitionName}); JbpmContext jbpmContext = JBPMUtils.getConfig().createJbpmContext(); try { TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); org.jbpm.taskmgmt.exe.TaskInstance ti = taskMgmtSession.getTaskInstance(taskInstanceId); if (transitionName != null && !transitionName.equals("")) { if (ti.getStart() == null) { ti.start(); } ti.end(transitionName); } else { if (ti.getStart() == null) { ti.start(); } ti.end(); } jbpmContext.getSession().flush(); } catch (JbpmException e) { throw new WorkflowException(e.getMessage(), e); } finally { jbpmContext.close(); } log.debug("endTaskInstance: void"); }
/** Set Task Instance Values */ public static void setTaskInstanceValues( long taskInstanceId, String transitionName, List<FormElement> values) throws WorkflowException { log.debug( "setTaskInstanceValues({}, {}, {})", new Object[] {taskInstanceId, transitionName, values}); JbpmContext jbpmContext = JBPMUtils.getConfig().createJbpmContext(); try { TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); Map<String, FormElement> hm = new HashMap<String, FormElement>(); for (FormElement fe : values) { hm.put(fe.getName(), fe); } org.jbpm.taskmgmt.exe.TaskInstance ti = taskMgmtSession.getTaskInstance(taskInstanceId); ti.setVariables(hm); if (transitionName != null && !transitionName.equals("")) { if (ti.getStart() == null) { ti.start(); } ti.end(transitionName); } else { if (ti.getStart() == null) { ti.start(); } ti.end(); } jbpmContext.save(ti); } catch (JbpmException e) { throw new WorkflowException(e.getMessage(), e); } finally { jbpmContext.close(); } }