@Override public Object processWithContext(ProcessToolContext ctx) { ctx.getProcessInstanceDAO().deleteProcessInstance(processInstance); return null; } });
@Override public Long processWithContext(ProcessToolContext ctx) { return ctx.getProcessInstanceDAO().saveProcessInstance(processInstance); } });
@Override public List<ProcessInstance> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getProcessInstances(ids)); } });
@Override public Collection<ProcessInstance> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().searchProcesses(filter, offset, limit, onlyRunning, userRoles, assignee, queues)); } });
@Override public ResultsPageWrapper<ProcessInstance> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getRecentProcesses(user, minDate, offset, limit)); } });
@Override public HashMap<String, ProcessInstance> processWithContext(ProcessToolContext ctx) { return (HashMap<String, ProcessInstance>) fetchHibernateData(ctx.getProcessInstanceDAO().getProcessInstanceByInternalIdMap(internalIds)); } });
@Override public Collection<ProcessInstance> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getUserProcessesBetweenDates(user, minDate, maxDate)); } });
@Override public ProcessInstance processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getProcessInstanceByInternalId(internalId)); } });
@Override public ProcessInstance processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getProcessInstanceByExternalId(externalId)); } });
@Override public ProcessInstance processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getProcessInstance(id)); } });
@Override public List<ProcessInstance> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().findProcessInstancesByKeyword(key, processType)); } });
@Override public Collection<ProcessInstanceLog> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getUserHistory(loadUserByLogin, startDate, endDate)); } });
@Override public Collection<ProcessInstance> processWithContext(ProcessToolContext ctx) { return fetchHibernateData(ctx.getProcessInstanceDAO().getUserProcessesAfterDate(user, minDate)); } });
@Override protected IAttributesProvider getAttributesProvider(Long id) { return getThreadProcessToolContext().getProcessInstanceDAO().getProcessInstance(id); }
@Override protected IAttributesConsumer getAttributesConsumer(Long id) { return getThreadProcessToolContext().getProcessInstanceDAO().getProcessInstance(id); }
@Override public Integer getRecentTasksCount(Calendar minDate, ProcessToolContext ctx) { int count = 0; UserData user = getUser(ctx); Collection<ProcessInstance> instances = ctx.getProcessInstanceDAO().getUserProcessesAfterDate(user, minDate); for (ProcessInstance pi : instances) { List<BpmTask> tasks = findProcessTasks(pi, user.getLogin(), ctx); if (tasks.isEmpty() && getMostRecentProcessHistoryTask(pi, user, minDate, ctx) != null) { count++; } else { count += tasks.size(); } } return count; }
@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 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); } }
private BpmTask performAction(ProcessStateAction action, ProcessInstance processInstance, ProcessToolContext ctx, Task task) { processInstance = getProcessData(processInstance.getInternalId(), ctx); addActionLogEntry(action, processInstance, ctx); ctx.getProcessInstanceDAO().saveProcessInstance(processInstance); ProcessEngine processEngine = getProcessEngine(); Map<String,Object> variables = new HashMap<String, Object>(); variables.put("ACTION",action.getBpmName()); processEngine.getTaskService().complete(task.getId(), variables); updateSubprocess(processInstance, ctx); String s = getProcessState(processInstance, ctx); fillProcessAssignmentData(processInstance, ctx); processInstance.setState(s); if (s == null && processInstance.getRunning() && !isProcessRunning(processInstance.getInternalId(), ctx)) { processInstance.setRunning(false); } ctx.getProcessInstanceDAO().saveProcessInstance(processInstance); publishEvents(processInstance, processInstance.getRunning() ? BpmEvent.Type.SIGNAL_PROCESS : BpmEvent.Type.END_PROCESS); return collectTask(findProcessTask(processInstance, ctx), processInstance, ctx); }
public Collection<ProcessInstance> getUserProcesses(int offset, int limit, ProcessToolContext ctx) { List<Task> taskList = getProcessEngine().getTaskService().createTaskQuery() .taskAssignee(user.getLogin()) .orderByExecutionId() .desc() .listPage(offset, limit); List<String> ids = keyFilter("processInstanceId", taskList); final Map<String, ProcessInstance> instances = ctx.getProcessInstanceDAO().getProcessInstanceByInternalIdMap(ids); return new Mapcar<Task, ProcessInstance>(taskList) { @Override public ProcessInstance lambda(Task task) { ProcessInstance pi = instances.get(task.getProcessInstanceId()); if (pi == null) { log.warning("process " + task.getProcessInstanceId() + " not found"); return null; } pi.setState(task.getName()); pi.setTaskId(task.getId()); return pi; } }.go(); }