protected void acceptStartProcessFormData(ProcessInstance instance, Map<String, Object> formData) { String processDefinitionName; try { processDefinitionName = ((ExecutionEntity) instance).getProcessDefinition().getName(); } catch (NullPointerException e) { processDefinitionName = repositoryService.createProcessDefinitionQuery() .processDefinitionId(instance.getProcessDefinitionId()) .singleResult().getName(); } formData.put("id", instance.getBusinessKey()); formData.put("processDefineId", instance.getProcessDefinitionId()); formData.put("processDefineKey", instance.getProcessDefinitionKey()); formData.put("processDefineName", processDefinitionName); formData.put("processInstanceId", instance.getProcessInstanceId()); }
.creatorName(request.getRejectUserName()) .processDefineId(processInstance.getProcessDefinitionId()) .processInstanceId(processInstance.getProcessInstanceId()) .taskId(taskId) .taskDefineKey(curTask.getTaskDefinitionKey())
.creatorName(request.getJumpUserName()) .processDefineId(processInstance.getProcessDefinitionId()) .processInstanceId(processInstance.getProcessInstanceId()) .taskId(task.getId()) .taskDefineKey(task.getTaskDefinitionKey())
QueryParamEntity.of("processInstanceId", instance.getProcessInstanceId()).doPaging(0, 2))) .map(PagerResult::getData) .map(list -> { logger.warn("主表数据存在多条数据:processInstanceId={}", instance.getProcessInstanceId()); .creatorName(request.getCompleteUserName()) .processDefineId(instance.getProcessDefinitionId()) .processInstanceId(instance.getProcessInstanceId()) .taskId(task.getId()) .taskDefineKey(task.getTaskDefinitionKey())
candidateUserSetter.accept(taskService .createTaskQuery() .processInstanceId(processInstance.getProcessInstanceId()) .taskDefinitionKey(activityId) .active() .creatorId(request.getCreatorId()) .creatorName(request.getCreatorName()) .processInstanceId(processInstance.getProcessInstanceId()) .processDefineId(processInstance.getProcessDefinitionId()) .build();
@Override public String getStartUserId(ProcessInstance processInstance) { ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) repositoryService.getProcessDefinition (processInstance.getProcessDefinitionId()); String initiator = processDefinition.getProperty(BpmnParse.PROPERTYNAME_INITIATOR_VARIABLE_NAME).toString(); String assign = runtimeService.getVariable(processInstance.getProcessInstanceId(), initiator).toString(); return assign; }
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).taskAssignee(startUserId).singleResult();
@Override public String getProcessInstanceId() { return activiti5ProcessInstance.getProcessInstanceId(); }
/** * @Description:填写申请的表单 * @param rmb 报销金额 * @param key 流程的key * @author: Ryan * @date 2018年11月18日 */ public String saveBxlcForm(String rmb, String key) { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("rmb", rmb); ProcessInstance startProcessInstanceByKey = runtimeService.startProcessInstanceByKey(key, variables); String processInstanceId = startProcessInstanceByKey.getProcessInstanceId(); return processInstanceId; }
@Override public void executeAction(String userId, String actionId) { // TODO: Check if the action is appropriate for the current status: ActivitiAction activitiAction = getActivitiAction(userId, actionId); if (activitiAction != null) { activitiAction.executeAction(processInstance.getProcessInstanceId()); } }
@Override public String startPoolManagementProcess(String businessKey, Pool pool) { Map<String, Object> arguments = Maps.newHashMap(); arguments.put(CoreProcessVariables.POOL, pool); arguments.put(CoreProcessVariables.PROVIDER, getId()); arguments.put(CoreProcessVariables.POOL_BUSINESS_KEY, businessKey); arguments.put(CoreProcessVariables.BOOTSTRAP_TIMEOUT, convertTimeoutToISO8601TimeDuration(pool.getBootstrapTimeInSeconds())); /* Authenticate as kermit to make the process visible in the Explorer UI */ processEngine.getIdentityService().setAuthenticatedUserId(CoreConstants.ACTIVITI_EXPLORER_DEFAULT_USER); RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance instance = runtimeService.startProcessInstanceByKey(PROCESS_KEY, businessKey, arguments); return instance.getProcessInstanceId(); }
@Override protected Object doExecute() throws Exception { ProcessEngine pe = this.getProcessEngine(); if (pe == null) { out().println("Process Engine NOT Found!"); return null; } RuntimeService rt = pe.getRuntimeService(); if (definitionID != null) { ProcessInstance pi = rt.startProcessInstanceById(definitionID); out().printf("Process instance %s Started\n", pi.getProcessInstanceId()); } return null; } }
private void printActiveProcessInstances(PrintWriter out, RuntimeService rt) { List<ProcessInstance> piList = rt.createProcessInstanceQuery().orderByProcessInstanceId().asc().list(); out.println(); out.println("Active Process Instances"); out.println("------------------------"); if (piList.isEmpty()) { out.println("No Active Process Instances Found."); return; } TextTable txtTable = new TextTable(3); txtTable.addHeaders("Definition ID", "Instance ID", "Executions"); for (ProcessInstance pi : piList) { txtTable.addRow(pi.getProcessDefinitionId(), pi.getProcessInstanceId(), getExecutions(rt, pi.getProcessInstanceId())); } txtTable.print(out); }
@Override protected Object doExecute() throws Exception { ProcessEngine pe = this.getProcessEngine(); if (pe == null) { out().println("Process Engine NOT Found!"); return null; } RuntimeService rt = pe.getRuntimeService(); if (definitionID != null) { ProcessInstance pi = rt.startProcessInstanceById(definitionID); out().printf("Process instance %s Started\n", pi.getProcessInstanceId()); } return null; } }
private void printActiveProcessInstances(PrintWriter out, RuntimeService rt) { List<ProcessInstance> piList = rt.createProcessInstanceQuery().orderByProcessInstanceId().asc().list(); out.println(); out.println("Active Process Instances"); out.println("------------------------"); if (piList.isEmpty()) { out.println("No Active Process Instances Found."); return; } TextTable txtTable = new TextTable(3); txtTable.addHeaders("Definition ID", "Instance ID", "Executions"); for (ProcessInstance pi : piList) { txtTable.addRow(pi.getProcessDefinitionId(), pi.getProcessInstanceId(), getExecutions(rt, pi.getProcessInstanceId())); } txtTable.print(out); }
protected void acceptStartProcessFormData(ProcessInstance instance, Map<String, Object> formData) { String processDefinitionName; try { processDefinitionName = ((ExecutionEntity) instance).getProcessDefinition().getName(); } catch (NullPointerException e) { processDefinitionName = repositoryService.createProcessDefinitionQuery() .processDefinitionId(instance.getProcessDefinitionId()) .singleResult().getName(); } formData.put("id", instance.getBusinessKey()); formData.put("processDefineId", instance.getProcessDefinitionId()); formData.put("processDefineKey", instance.getProcessDefinitionKey()); formData.put("processDefineName", processDefinitionName); formData.put("processInstanceId", instance.getProcessInstanceId()); }
/** * Trigger a signal event on all executions for a specific business key. * * @see <a href="http://www.activiti.org/userguide/index.html#bpmnSignalEventDefinition" /> * @see CoreSignals */ protected void triggerSignalEvent(ProcessEngine processEngine, String businessKey, String signalName) { RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() .processInstanceBusinessKey(businessKey).singleResult(); List<Execution> executions = runtimeService.createExecutionQuery() .processInstanceId(processInstance.getProcessInstanceId()) .signalEventSubscriptionName(signalName).list(); if (executions.isEmpty()) { throw new NoSuchElementException(String.format("No executions found waiting " + "for signal '%s' on process %s", signalName, businessKey)); } for (Execution execution : executions) { LOG.info("Sending '{}' signal to execution {} for process {}", new Object[]{signalName, execution.getId(), businessKey}); runtimeService.signalEventReceived(signalName, execution.getId()); } }
@Override protected Object doExecute() throws Exception { if (businessKey == null || businessKey.isEmpty()) { out.println("Please supply a business key"); } else { // reverse the list to start the sub-processes first (they have bigger id's) List<ProcessInstance> processInstanceList = processEngine.getRuntimeService() .createProcessInstanceQuery().variableValueEquals(CoreProcessVariables.POOL_BUSINESS_KEY, businessKey) .orderByProcessInstanceId().desc().list(); out.printf("Found %d processes with pool business key %s\n", processInstanceList.size(), businessKey); int count = 0; for (ProcessInstance instance : processInstanceList) { List<Job> jobs = processEngine.getManagementService().createJobQuery() .processInstanceId(instance.getProcessInstanceId()).withException().list(); for (Job job : jobs) { count++; processEngine.getManagementService().setJobRetries(job.getId(), JobEntity.DEFAULT_RETRIES); } } out.printf("Number of retries reset for %s jobs\n", count); } return null; }
private HistoricActivityInstance getCurrentHistoricActiviti() { List<String> subProcessIds = getActivitiFacade().getHistoricSubProcessIds(processInstance.getProcessInstanceId()); List<Execution> subProcessExecutions = findProcessExecutions(subProcessIds); List<HistoricActivityInstance> historicActivities = getHistoricActivities(); // iterate in reverse, historical instances are ordered chronologically for (Execution processExecution : subProcessExecutions) { HistoricActivityInstance historicActivityInstance = findHistoricActivityInProcessExecution(historicActivities, processExecution); if (historicActivityInstance != null) { return historicActivityInstance; } } return findHistoricActivityInProcessExecution(historicActivities, processInstance); }
@Test public void testDeleteWorkflow() throws Exception { WorkflowDefinition def = deployTestAdhocDefinition(); ProcessInstance processInstance = runtime.startProcessInstanceById(BPMEngineRegistry.getLocalId(def.getId())); // Validate if a workflow exists List<WorkflowInstance> instances = workflowEngine.getActiveWorkflows(def.getId()); assertNotNull(instances); assertEquals(1, instances.size()); assertEquals(processInstance.getId(), BPMEngineRegistry.getLocalId(instances.get(0).getId())); // Call delete method on component workflowEngine.deleteWorkflow(instances.get(0).getId()); instances = workflowEngine.getActiveWorkflows(def.getId()); assertNotNull(instances); assertEquals(0, instances.size()); // Historic process instance shouldn't be present HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() .processInstanceId(processInstance.getProcessInstanceId()) .singleResult(); assertNull(historicProcessInstance); }