@Override public String transform(ProcessInstance obj) { return obj.getInternalId(); } });
public String getInternalProcessId() { return processInstance != null ? processInstance.getInternalId() : null; }
@Override public Boolean processWithContext(ProcessToolContext ctx) { return getSession(ctx).isProcessRunning(processData.getInternalId(), ctx); } });
@Override public List<String> processWithContext(ProcessToolContext ctx) { return getSession(ctx).getOutgoingTransitionDestinationNames(processData.getInternalId(), ctx); } });
@Override public List<BpmTask> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(getSession(ctx).getTaskData(processData.getInternalId(), taskName, ctx)); } });
@Override public void adminCompleteTask(ProcessInstance pi, BpmTask bpmTask, ProcessStateAction action) { log.severe("User: " + user.getLogin() + " attempting to complete task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to outcome: " + action); performAction(action, ProcessToolContext.Util.getThreadProcessToolContext(), bpmTask); log.severe("User: " + user.getLogin() + " has completed task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to outcome: " + action); }
@Override public void adminCancelProcessInstance(ProcessInstance pi) { log.severe("User: " + user.getLogin() + " attempting to cancel process: " + pi.getInternalId()); ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); pi = getProcessData(pi.getInternalId(), ctx); ProcessEngine processEngine = getProcessEngine(); processEngine.getRuntimeService().deleteProcessInstance(pi.getInternalId(), "admin-cancelled"); fillProcessAssignmentData(pi, ctx); pi.setRunning(false); pi.setState(null); ctx.getProcessInstanceDAO().saveProcessInstance(pi); log.severe("User: " + user.getLogin() + " has cancelled process: " + pi.getInternalId()); }
public Map<String, Object> getBpmVariables(ProcessInstance pi) { TaskService es = getProcessEngine().getTaskService(); return es.getVariables(pi.getInternalId()); }
public Object getBpmVariable(ProcessInstance pi, String variableName) { TaskService es = getProcessEngine().getTaskService(); return es.getVariable(pi.getInternalId(), variableName); }
private List<Task> findProcessTasks(final ProcessInstance processInstance, ProcessToolContext ctx, final boolean mustHaveAssignee) { List<Task> list = getProcessEngine().getTaskService().createTaskQuery() .processInstanceId(processInstance.getInternalId()).list(); if (!mustHaveAssignee) return list; List<Task> res = new ArrayList<Task>(); for (Task t : list) { if (t.getAssignee() != null) res.add(t); } return res; }
private String findEndActivityName(ProcessInstance pi, ProcessToolContext ctx) { List<HistoricProcessInstance> history = getProcessEngine().getHistoryService().createHistoricProcessInstanceQuery() .processInstanceId(pi.getInternalId()) .list(); if (history != null && !history.isEmpty()) { String endActivityName = history.get(0).getEndActivityId(); if (Strings.hasText(endActivityName)) { return endActivityName; } } return null; }
@Override public List<BpmTask> findProcessTasks(ProcessInstance pi, String userLogin, Set<String> taskNames, ProcessToolContext ctx) { TaskQuery q = getProcessEngine().getTaskService().createTaskQuery().processInstanceId(pi.getInternalId()); if (userLogin != null) q = q.taskAssignee(userLogin); if (taskNames != null && !taskNames.isEmpty()) //TODO what if more than 1 task name is supplied q = q.taskName(taskNames.iterator().next()); List<Task> tasks = q.listPage(0, 1000); return collectTasks(tasks, pi, ctx); }
private Task findProcessTask(final ProcessInstance processInstance, ProcessToolContext ctx) { return getProcessEngine().getTaskService().createTaskQuery() .processInstanceId(processInstance.getInternalId()).singleResult(); }
@Override public Collection<BpmTask> getProcessTaskInQueues(ProcessToolContext ctx, ProcessInstance processInstance) { List<Task> tasks = getProcessEngine() .getTaskService() .createTaskQuery() .processInstanceId(processInstance.getInternalId()).list(); return findProcessInstancesForTasks(tasks, ctx); }
@Override public List<BpmTask> findProcessTasks(ProcessInstance pi, ProcessToolContext ctx) { List<Task> tasks = getProcessEngine().getTaskService().createTaskQuery() .processInstanceId(pi.getInternalId()) .listPage(0, 1000); return collectTasks(tasks, pi, ctx); }
@Override public void loadData(BpmTask task) { sessionFacade = new CmisAtomSessionFacade(repositoryUser, repositoryPassword, repositoryAtomUrl, repositoryId); mainFolder = sessionFacade.createFolderIfNecessary(newFolderPrefix + task.getProcessInstance().getInternalId(), rootFolderPath); if (StringUtil.hasText(subFolder)) mainFolder = sessionFacade.createFolderIfNecessary(subFolder, mainFolder.getPath()); folderId = mainFolder.getId(); }
private List<Task> findUserTask(final ProcessInstance processInstance, ProcessToolContext ctx) { return getProcessEngine().getTaskService().createTaskQuery().processInstanceId(processInstance.getInternalId()) .taskAssignee(user.getLogin()).list(); }
@Override public List<BpmTask> findUserTasks(ProcessInstance processInstance, ProcessToolContext ctx) { List<Task> tasks = getProcessEngine().getTaskService().createTaskQuery() .processInstanceId(processInstance.getInternalId()) .taskAssignee(user.getLogin()) .listPage(0, 1000); return collectTasks(tasks, processInstance, ctx); }
@Override public void updateContext(ProcessInstance processInstance) { RuntimeService es = getProcessEngine().getRuntimeService(); for (ProcessInstanceAttribute pia : processInstance.getProcessAttributes()) { if (pia instanceof BpmVariable) { BpmVariable bpmVar = (BpmVariable) pia; if (hasText(bpmVar.getBpmVariableName())) { es.setVariable(processInstance.getInternalId(), bpmVar.getBpmVariableName(), bpmVar.getBpmVariableValue()); } } } }
public void updateSubprocess(final ProcessInstance parentPi, ProcessToolContext ctx) { RuntimeService service = getProcessEngine().getRuntimeService(); ProcessInstanceQuery subprocessQuery = service.createProcessInstanceQuery().superProcessInstanceId(parentPi.getInternalId()); org.activiti.engine.runtime.ProcessInstance subprocess = subprocessQuery.singleResult(); if(subprocess != null){ String processDefinitionId = subprocess.getProcessDefinitionId().replaceFirst(":\\d+:\\d+$", ""); ProcessDefinitionConfig config = ctx.getProcessDefinitionDAO().getActiveConfigurationByKey(processDefinitionId); pl.net.bluesoft.rnd.processtool.model.ProcessInstance subPi = createProcessInstance(config, null, ctx, null, null, "parent_process", subprocess.getId()); subPi.setParent(parentPi); ctx.getProcessInstanceDAO().saveProcessInstance(subPi); } }