/** * @see #associateExecutionById(String) */ public void setExecution(Execution execution) { associateExecutionById(execution.getId()); }
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; }
/** * Returns the {@link ProcessInstance} currently associated or 'null' * * @throws ProcessEngineCdiException * if no {@link Execution} is associated. Use * {@link #isAssociated()} to check whether an association exists. */ public ProcessInstance getProcessInstance() { Execution execution = getExecution(); if(execution != null && !(execution.getProcessInstanceId().equals(execution.getId()))){ return processEngine .getRuntimeService() .createProcessInstanceQuery() .processInstanceId(execution.getProcessInstanceId()) .singleResult(); } return (ProcessInstance) execution; }
@Override public String getProperty(Execution obj) { return obj.getProcessInstanceId(); } });
public String getTenantId() { return wrappedExecution.getTenantId(); }
public boolean isEnded() { return wrappedExecution.isEnded(); }
/** * Returns the id of the currently associated process instance or 'null' */ public String getProcessInstanceId() { Execution execution = associationManager.getExecution(); return execution != null ? execution.getProcessInstanceId() : null; }
public void testQuerySortingDesc() { // exclude executions without tenant id because of database-specific ordering List<Execution> executions = runtimeService.createExecutionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(executions.size(), is(2)); assertThat(executions.get(0).getTenantId(), is(TENANT_TWO)); assertThat(executions.get(1).getTenantId(), is(TENANT_ONE)); }
/** * @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 String getProcessInstanceId() { return wrappedExecution.getProcessInstanceId(); }
public void testQuerySortingAsc() { // exclude executions without tenant id because of database-specific ordering List<Execution> executions = runtimeService.createExecutionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(executions.size(), is(2)); assertThat(executions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(executions.get(1).getTenantId(), is(TENANT_TWO)); }
@Override public String getExecutionId() { Execution execution = getExecution(); if (execution != null) { return execution.getId(); } else { return null; } }
public static Execution createMockExecution(String tenantId) { Execution mock = mock(Execution.class); when(mock.getId()).thenReturn(EXAMPLE_EXECUTION_ID); when(mock.getProcessInstanceId()).thenReturn(EXAMPLE_PROCESS_INSTANCE_ID); when(mock.isEnded()).thenReturn(EXAMPLE_EXECUTION_IS_ENDED); when(mock.getTenantId()).thenReturn(tenantId); return mock; }
@Deployment(resources={"org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml", "org/camunda/bpm/engine/test/api/runtime/oneMessageCatchProcess.bpmn20.xml"}) public void testQueryForExecutionsWithMessageEventSubscriptions() { runtimeService.startProcessInstanceByKey("oneTaskProcess"); runtimeService.startProcessInstanceByKey("oneTaskProcess"); ProcessInstance instance1 = runtimeService.startProcessInstanceByKey("oneMessageCatchProcess"); ProcessInstance instance2 = runtimeService.startProcessInstanceByKey("oneMessageCatchProcess"); List<Execution> executions = runtimeService.createExecutionQuery() .messageEventSubscription().orderByProcessInstanceId().asc().list(); assertEquals(2, executions.size()); if (instance1.getId().compareTo(instance2.getId()) < 0) { assertEquals(instance1.getId(), executions.get(0).getProcessInstanceId()); assertEquals(instance2.getId(), executions.get(1).getProcessInstanceId()); } else { assertEquals(instance2.getId(), executions.get(0).getProcessInstanceId()); assertEquals(instance1.getId(), executions.get(1).getProcessInstanceId()); } }
public void testPropagateTenantIdToConcurrentExecution() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .parallelGateway("fork") .userTask() .parallelGateway("join") .endEvent() .moveToNode("fork") .userTask() .connectTo("join") .done()); startProcessInstance(PROCESS_DEFINITION_KEY); List<Execution> executions = runtimeService.createExecutionQuery().list(); assertThat(executions.size(), is(3)); assertThat(executions.get(0).getTenantId(), is(TENANT_ID)); // inherit the tenant id from process instance assertThat(executions.get(1).getTenantId(), is(TENANT_ID)); assertThat(executions.get(2).getTenantId(), is(TENANT_ID)); }
private List<Execution> createIncompleteMockExecutions() { List<Execution> mocks = new ArrayList<Execution>(); Execution mockExecution = mock(Execution.class); when(mockExecution.getId()).thenReturn(MockProvider.EXAMPLE_EXECUTION_ID); mocks.add(mockExecution); return mocks; }
@Deployment(resources={ "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testClashingValues() throws Exception { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("var", 1234L); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", vars); Map<String, Object> vars2 = new HashMap<String, Object>(); vars2.put("var", 1234); ProcessInstance processInstance2 = runtimeService.startProcessInstanceByKey("oneTaskProcess", vars2); List<Execution> executions = runtimeService.createExecutionQuery() .processDefinitionKey("oneTaskProcess") .variableValueEquals("var", 1234L) .list(); assertEquals(1, executions.size()); assertEquals(processInstance.getId(), executions.get(0).getProcessInstanceId()); runtimeService.deleteProcessInstance(processInstance.getId(), "test"); runtimeService.deleteProcessInstance(processInstance2.getId(), "test"); }
public void testPropagateTenantIdToEmbeddedSubprocess() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .subProcess() .embeddedSubProcess() .startEvent() .userTask() .endEvent() .subProcessDone() .endEvent() .done()); startProcessInstance(PROCESS_DEFINITION_KEY); List<Execution> executions = runtimeService.createExecutionQuery().list(); assertThat(executions.size(), is(2)); assertThat(executions.get(0).getTenantId(), is(TENANT_ID)); // inherit the tenant id from parent execution (e.g. process instance) assertThat(executions.get(1).getTenantId(), is(TENANT_ID)); }
@SuppressWarnings("unchecked") public <T extends TypedValue> T getVariable(String variableName) { TypedValue value = cachedVariables.getValueTyped(variableName); if(value == null) { if(execution != null) { value = runtimeService.getVariableTyped(execution.getId(), variableName); cachedVariables.put(variableName, value); } } return (T) value; }