@Override protected String getViewedObjectId() { return this.task.getInternalTaskId(); }
@Override public ProcessInstance processWithContext(ProcessToolContext ctx) { getSession(ctx, user).assignTaskToUser(ctx, taskData.getInternalTaskId(), userLogin); return null; } });
@Override public void onTaskFinished(BpmTask bpmTask) { String taskIdString = bpmTask.getInternalTaskId(); Long taskId = Long.parseLong(taskIdString); Collection<UserProcessQueue> userProcessQueues = queueDao.getAllUserProcessQueueByTaskId(taskId); /* Delete all process user task with assigned task id. It will delete all user queues * for creator, assigne and owners */ queueDao.delete(userProcessQueues); }
@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); }
private void addClaimActionButton(Element parent) { String actionButtonId = "action-button-claim"; Element buttonNode = parent.ownerDocument().createElement("button") .attr("class", "btn btn-warning") .attr("disabled", "true") .attr("id", actionButtonId); parent.appendChild(buttonNode); Element cancelButtonIcon = parent.ownerDocument().createElement("span") .attr("class", "glyphicon glyphicon-download"); parent.appendChild(buttonNode); buttonNode.appendChild(cancelButtonIcon); buttonNode.appendText(i18Source.getMessage("button.claim")); Long processStateConfigurationId = task.getCurrentProcessStateConfiguration().getId(); scriptBuilder.append("$('#").append(actionButtonId) .append("').click(function() { claimTaskFromQueue('#action-button-claim','null', '") .append(processStateConfigurationId).append("','") .append(task.getInternalTaskId()) .append("'); });") .append("$('#").append(actionButtonId) .append("').tooltip({placement: 'bottom', title: '").append(i18Source.getMessage("button.claim.descrition")).append("'});"); }
@Override public void withContext(ProcessToolContext ctx) { long t0 = System.currentTimeMillis(); StartProcessResult result = context.getBpmSession().startProcess(bpmDefinitionId, null, "portlet"); ProcessInstance instance = result.getProcessInstance(); long t1 = System.currentTimeMillis(); for (String key : simpleAttributes.keySet()) { if (key.equals(ProcessInstance.EXTERNAL_KEY_PROPERTY)) instance.setExternalKey(simpleAttributes.get(key)); else instance.setSimpleAttribute(key, simpleAttributes.get(key)); } long t2 = System.currentTimeMillis(); List<BpmTask> tasks = result.getTasksAssignedToCreator(); if (!tasks.isEmpty()) { BpmTask task = tasks.get(0); newProcessInstanceBO.setTaskId(task.getInternalTaskId()); newProcessInstanceBO.setProcessStateConfigurationId(task.getCurrentProcessStateConfiguration().getId().toString()); } long t3 = System.currentTimeMillis(); performanceLogger.log(Level.FINEST, "startNewProcess.withContext total: " + (t3 - t0) + "ms, " + "[1]: " + (t1 - t0) + "ms, " + "[2]: " + (t2 - t1) + "ms, " + "[3]: " + (t3 - t2) + "ms, " ); } }, ExecutionType.TRANSACTION);
@Override public void adminReassignProcessTask(ProcessInstance pi, BpmTask bpmTask, String userLogin) { log.severe("User: " + user.getLogin() + " attempting to reassign task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to user: " + userLogin); ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); pi = getProcessData(pi.getInternalId(), ctx); ProcessEngine processEngine = getProcessEngine(); TaskService ts = processEngine.getTaskService(); Task task = ts.createTaskQuery().taskId(bpmTask.getInternalTaskId()).singleResult(); if (nvl(userLogin, "").equals(nvl(task.getAssignee(), ""))) { log.severe("User: " + user.getLogin() + " has not reassigned task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " as the user is the same: " + userLogin); return; } //this call should also take care of swimlanes ts.setAssignee(bpmTask.getInternalTaskId(), userLogin); fillProcessAssignmentData(pi, ctx); log.info("Process.running:" + pi.getRunning()); ctx.getProcessInstanceDAO().saveProcessInstance(pi); log.severe("User: " + user.getLogin() + " has reassigned task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to user: " + userLogin); }
public static TasksListViewBean createTask(BpmTask task, ProcessStateConfiguration actionPseudoState, String actionName, String viewName, I18NSource messageSource) { TasksListViewBean processBean= new TasksListViewBeanFactoryWrapper().createFrom(task, messageSource, viewName); // result.setName(actionPseudoState.getName()); processBean.setTaskId(getActionPseudotaskId(task.getInternalTaskId(), actionName)); processBean.setUserCanClaim(false); // result.set return processBean; } }
@Override protected void invokeBpmTransition() { if(dialog==null){ super.invokeBpmTransition(); } else{ ProcessToolContext ctx = getCurrentContext(); String login = dialog.getAssigneeBean().getAssignee().getLogin(); bpmSession.assignTaskToUser(ctx, task.getInternalTaskId(), login); callback.getWidgetContextSupport().updateTask(task); logger.info("Assigneed user: " + login); } }
@Override public void onProcessFinished(ProcessInstance processInstance, BpmTask bpmTask) { /* Get all queue elements for given process id and delete them */ Long processId = processInstance.getId(); String creatorLogin = bpmTask.getCreator(); /* Create new queue element that is stored as finished process */ UserProcessQueue finishedProcess = new UserProcessQueue(); finishedProcess.setLogin(creatorLogin); finishedProcess.setProcessId(processId); finishedProcess.setQueueType(QueueType.OWN_FINISHED); finishedProcess.setTaskId(Long.parseLong(bpmTask.getInternalTaskId())); queueDao.saveOrUpdate(finishedProcess); }
public BpmTask performAction(ProcessStateAction action, ProcessToolContext ctx, BpmTask bpmTask) { return performAction(action, bpmTask.getProcessInstance(),ctx, getProcessEngine().getTaskService().createTaskQuery() .taskId(bpmTask.getInternalTaskId()).singleResult()); }
public BpmTask(BpmTask task) { this.assignee = task.getAssignee(); this.owner = task.getOwner(); this.taskName = task.getTaskName(); this.internalTaskId = task.getInternalTaskId(); this.executionId = task.getExecutionId(); this.createDate = task.getCreateDate(); this.finishDate = task.getFinishDate(); this.processInstance = task.getProcessInstance(); this.isFinished = task.isFinished(); }
String taskIdString = bpmTask.getInternalTaskId();
final String taskId = pi != null ? pi.getInternalTaskId() : null; if (!names.contains(pq.getName())) throw new ProcessToolSecurityException("queue.no.rights", pq.getName()); TaskService ts = getProcessEngine().getTaskService();