/** * @see #associateExecutionById(String) */ public void setExecution(Execution execution) { associateExecutionById(execution.getId()); }
/** * @see #getExecution() */ public String getExecutionId() { Execution e = getExecution(); return e != null ? e.getId() : null; }
public static ExecutionDto fromExecution(Execution execution) { ExecutionDto dto = new ExecutionDto(); dto.id = execution.getId(); dto.processInstanceId = execution.getProcessInstanceId(); dto.ended = execution.isEnded(); dto.tenantId = execution.getTenantId(); return dto; }
public static ExecutionDto fromExecution(Execution execution) { ExecutionDto dto = new ExecutionDto(); dto.id = execution.getId(); dto.processInstanceId = execution.getProcessInstanceId(); dto.ended = execution.isEnded(); dto.tenantId = execution.getTenantId(); return dto; }
protected void assertVariable(Execution execution, String variableName, Object expectedValue) { Object variableValue = runtimeService.getVariable(execution.getId(), variableName); assertEquals("Value for variable '" + variableName + "' and " + execution + " " + "does not match.", expectedValue, variableValue); }
@Deployment public void testSequentialScriptTasks() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("sum", 0); vars.put("nrOfLoops", 5); runtimeService.startProcessInstanceByKey("miSequentialScriptTask", vars); Execution waitStateExecution = runtimeService.createExecutionQuery().singleResult(); int sum = (Integer) runtimeService.getVariable(waitStateExecution.getId(), "sum"); assertEquals(10, sum); }
@Deployment(resources="org/camunda/bpm/engine/test/bpmn/multiinstance/MultiInstanceTest.testSequentialScriptTasks.bpmn20.xml") public void testSequentialScriptTasksNoStackOverflow() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("sum", 0); vars.put("nrOfLoops", 200); runtimeService.startProcessInstanceByKey("miSequentialScriptTask", vars); Execution waitStateExecution = runtimeService.createExecutionQuery().singleResult(); int sum = (Integer) runtimeService.getVariable(waitStateExecution.getId(), "sum"); assertEquals(19900, sum); }
@Deployment public void testParallelScriptTasks() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("sum", 0); vars.put("nrOfLoops", 10); runtimeService.startProcessInstanceByKey("miParallelScriptTask", vars); Execution waitStateExecution = runtimeService.createExecutionQuery().singleResult(); int sum = (Integer) runtimeService.getVariable(waitStateExecution.getId(), "sum"); assertEquals(45, sum); }
public void execute(ProcessEngine engine, String scenarioName) { // given ProcessInstance processInstance = engine.getRuntimeService().startProcessInstanceByKey("Process", "process"); // when Execution execution = engine.getRuntimeService().createExecutionQuery().processInstanceId(processInstance.getId()).singleResult(); engine.getRuntimeService().setVariable(execution.getId(), "foo", "bar"); } };
@Deployment public void testParallelSubProcessAllAutomatic() { String procId = runtimeService.startProcessInstanceByKey("miParallelSubprocessAllAutomatics", CollectionUtil.singletonMap("nrOfLoops", 5)).getId(); Execution waitState = runtimeService.createExecutionQuery().singleResult(); assertEquals(10, runtimeService.getVariable(waitState.getId(), "sum")); runtimeService.signal(waitState.getId()); assertProcessEnded(procId); }
public void testQueryByExecutionId() { Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceIds.get(0)).singleResult(); assertNotNull(execution); IncidentQuery query = runtimeService.createIncidentQuery().executionId(execution.getId()); assertEquals(1, query.count()); List<Incident> incidents = query.list(); assertFalse(incidents.isEmpty()); assertEquals(1, incidents.size()); }
@Deployment public void testSequentialScriptTasksCompletionCondition() { runtimeService.startProcessInstanceByKey("miSequentialScriptTaskCompletionCondition").getId(); Execution waitStateExecution = runtimeService.createExecutionQuery().singleResult(); int sum = (Integer) runtimeService.getVariable(waitStateExecution.getId(), "sum"); assertEquals(5, sum); }
@Deployment public void testInputExternalClasspathScriptValueAsBean() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("onePlusOneBean", new OnePlusOneBean()); runtimeService.startProcessInstanceByKey("testProcess", variables); Execution execution = runtimeService.createExecutionQuery().activityId("wait").singleResult(); VariableInstance variable = runtimeService.createVariableInstanceQuery().variableName("var1").singleResult(); assertNotNull(variable); assertEquals(2, variable.getValue()); assertEquals(execution.getId(), variable.getExecutionId()); }
@Test public void testTransientVariableOvewritesPersistedVariableInSameScope() { testRule.deploy(ProcessModels.ONE_TASK_PROCESS); runtimeService.startProcessInstanceByKey("Process", Variables.createVariables().putValue("foo", "bar")); Execution execution = runtimeService.createExecutionQuery().singleResult(); try { runtimeService.setVariable(execution.getId(), "foo", Variables.stringValue("xyz", true)); } catch (ProcessEngineException e) { assertThat(e.getMessage(), containsString("Cannot set transient variable with name foo")); } }
@Test public void testSendTaskWithBoundaryEvent() throws Exception { // given testHelper.deploy(PROCESS_WITH_SEND_TASK_AND_BOUNDARY_EVENT); runtimeService.startProcessInstanceByKey("process"); Execution activity = runtimeService.createExecutionQuery().activityId("sendTask").singleResult(); runtimeService.signal(activity.getId()); // then checkRecordedEvents("sendTask", "boundary", "endEventBoundary"); }
@Deployment public void testQueryByVariableInParallelBranch() throws Exception { runtimeService.startProcessInstanceByKey("parallelGateway"); // when there are two process variables of the same name but different types Execution task1Execution = runtimeService.createExecutionQuery().activityId("task1").singleResult(); runtimeService.setVariableLocal(task1Execution.getId(), "var", 12345L); Execution task2Execution = runtimeService.createExecutionQuery().activityId("task2").singleResult(); runtimeService.setVariableLocal(task2Execution.getId(), "var", 12345); // then the task query should be able to filter by both variables and return both tasks assertEquals(2, taskService.createTaskQuery().processVariableValueEquals("var", 12345).count()); assertEquals(2, taskService.createTaskQuery().processVariableValueEquals("var", 12345L).count()); }
@Deployment public void testJavaServiceDelegation() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("javaServiceDelegation", CollectionUtil.singletonMap("input", "Activiti BPM Engine")); Execution execution = runtimeService.createExecutionQuery() .processInstanceId(pi.getId()) .activityId("waitState") .singleResult(); assertEquals("ACTIVITI BPM ENGINE", runtimeService.getVariable(execution.getId(), "input")); }
@Deployment public void testWaitStateBehavior() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("receiveTask"); Execution execution = runtimeService.createExecutionQuery() .processInstanceId(pi.getId()) .activityId("waitState") .singleResult(); assertNotNull(execution); runtimeService.signal(execution.getId()); assertProcessEnded(pi.getId()); } }
@Deployment public void testInputExternalClasspathScriptValue() { runtimeService.startProcessInstanceByKey("testProcess"); Execution execution = runtimeService.createExecutionQuery().activityId("wait").singleResult(); VariableInstance variable = runtimeService.createVariableInstanceQuery().variableName("var1").singleResult(); assertNotNull(variable); assertEquals(2, variable.getValue()); assertEquals(execution.getId(), variable.getExecutionId()); }
@Deployment public void testCatchErrorOnSubprocessThrownByInterruptingEventSubprocess() { runtimeService.startProcessInstanceByKey("testProcess"); EventSubscription messageSubscription = runtimeService.createEventSubscriptionQuery().singleResult(); runtimeService.messageEventReceived("message", messageSubscription.getExecutionId()); // should successfully have reached the task following the boundary event Execution taskExecution = runtimeService.createExecutionQuery().activityId("afterBoundaryTask").singleResult(); assertNotNull(taskExecution); Task task = taskService.createTaskQuery().executionId(taskExecution.getId()).singleResult(); assertNotNull(task); }