@Override public void modifyProcessInstance(ProcessInstanceModificationDto dto) { if (dto.getInstructions() != null && !dto.getInstructions().isEmpty()) { ProcessInstanceModificationBuilder modificationBuilder = engine.getRuntimeService().createProcessInstanceModification(processInstanceId); dto.applyTo(modificationBuilder, engine, objectMapper); modificationBuilder.execute(dto.isSkipCustomListeners(), dto.isSkipIoMappings()); } }
@Override public void modifyProcessInstance(ProcessInstanceModificationDto dto) { if (dto.getInstructions() != null && !dto.getInstructions().isEmpty()) { ProcessInstanceModificationBuilder modificationBuilder = engine.getRuntimeService().createProcessInstanceModification(processInstanceId); dto.applyTo(modificationBuilder, engine, objectMapper); modificationBuilder.execute(dto.isSkipCustomListeners(), dto.isSkipIoMappings()); } }
@Deployment(resources = PROCESS_PATH) public void testModifyProcessInstance() { // given String id = runtimeService.startProcessInstanceByKey(PROCESS_KEY).getId(); // when runtimeService .createProcessInstanceModification(id) .cancelAllForActivity("theTask") .execute(); // then verifyNoUserOperationLogged(); }
public void testDeleteProcessInstanceByModifyingWithoutDeletePermissionOnProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(MESSAGE_BOUNDARY_PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, MESSAGE_BOUNDARY_PROCESS_KEY, userId, UPDATE_INSTANCE); createGrantAuthorization(PROCESS_INSTANCE, processInstanceId, userId, DELETE); // when runtimeService.createProcessInstanceModification(processInstanceId) .cancelAllForActivity("task") .execute(); // then assertProcessEnded(processInstanceId); }
public void testDeleteProcessInstanceByModifyingWithoutDeletePermissionOnAnyProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(MESSAGE_BOUNDARY_PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, MESSAGE_BOUNDARY_PROCESS_KEY, userId, UPDATE_INSTANCE); createGrantAuthorization(PROCESS_INSTANCE, ANY, userId, DELETE); // when runtimeService.createProcessInstanceModification(processInstanceId) .cancelAllForActivity("task") .execute(); // then assertProcessEnded(processInstanceId); }
@Test public void modifyProcessInstanceWithAuthenticatedTenant() { assertNotNull(engineRule.getRuntimeService().getActivityInstance(processInstanceId)); engineRule.getIdentityService().setAuthentication("aUserId", null, Arrays.asList(TENANT_ONE)); // when engineRule.getRuntimeService() .createProcessInstanceModification(processInstanceId) .cancelAllForActivity("task") .execute(); assertNull(engineRule.getRuntimeService().getActivityInstance(processInstanceId)); }
@Deployment(resources = PARALLEL_MULTI_INSTANCE_TASK_PROCESS) public void testCancelMultiInstanceBodyParallelTasks() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("miParallelUserTasks"); completeTasksInOrder("beforeTask"); // when runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("miTasks#multiInstanceBody") .execute(); // then assertProcessEnded(processInstance.getId()); }
@Deployment(resources = PARALLEL_MULTI_INSTANCE_SUBPROCESS_PROCESS) public void testCancelMultiInstanceBodyParallelSubprocess() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("miParallelSubprocess"); completeTasksInOrder("beforeTask"); // when runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("miSubProcess#multiInstanceBody") .execute(); // then assertProcessEnded(processInstance.getId()); }
@Deployment(resources = SEQUENTIAL_MULTI_INSTANCE_TASK_PROCESS) public void testCancelMultiInstanceBodySequentialTasks() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("miSequentialUserTasks"); completeTasksInOrder("beforeTask"); // when runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("miTasks#multiInstanceBody") .execute(); // then assertProcessEnded(processInstance.getId()); }
@Deployment(resources = PARALLEL_MULTI_INSTANCE_TASK_PROCESS) public void testCancelAllInnerActivityParallelTasks() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("miParallelUserTasks"); completeTasksInOrder("beforeTask"); // when runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("miTasks") .execute(); // then assertProcessEnded(processInstance.getId()); }
@Test public void modifyProcessInstanceWithNoAuthenticatedTenant() { engineRule.getIdentityService().setAuthentication("aUserId", null); thrown.expect(ProcessEngineException.class); thrown.expectMessage("Cannot update the process instance '" + processInstanceId +"' because it belongs to no authenticated tenant."); // when engineRule.getRuntimeService() .createProcessInstanceModification(processInstanceId) .cancelAllForActivity("task") .execute(); }
@Deployment(resources = ONE_TASK_PROCESS) public void testCancellationInOneTaskProcess() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelActivityInstance(getInstanceIdForActivity(tree, "theTask")) .execute(); assertProcessEnded(processInstanceId); }
@Deployment(resources = ASYNC_BEFORE_ONE_TASK_PROCESS) public void testCancelAsyncBeforeTransitionInstanceEndsProcessInstance() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService.createProcessInstanceModification(processInstanceId) .cancelTransitionInstance(getChildTransitionInstanceForTargetActivity(tree, "theTask").getId()) .execute(); // then the process instance has ended assertProcessEnded(processInstanceId); }
@Test public void modifyProcessInstanceWithDisabledTenantCheck() { assertNotNull(engineRule.getRuntimeService().getActivityInstance(processInstanceId)); engineRule.getIdentityService().setAuthentication("aUserId", null, Arrays.asList(TENANT_ONE)); engineRule.getProcessEngineConfiguration().setTenantCheckEnabled(false); // when engineRule.getRuntimeService() .createProcessInstanceModification(processInstanceId) .cancelAllForActivity("task") .execute(); assertNull(engineRule.getRuntimeService().getActivityInstance(processInstanceId)); } }
@Deployment(resources = ONE_SCOPE_TASK_PROCESS) public void testCancellationInOneScopeTaskProcess() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelActivityInstance(getInstanceIdForActivity(tree, "theTask")) .execute(); assertProcessEnded(processInstanceId); }
@Deployment(resources = ASYNC_BEFORE_ONE_SCOPE_TASK_PROCESS) public void testCancelAsyncBeforeScopeTransitionInstanceEndsProcessInstance() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService.createProcessInstanceModification(processInstanceId) .cancelTransitionInstance(getChildTransitionInstanceForTargetActivity(tree, "theTask").getId()) .execute(); // then the process instance has ended assertProcessEnded(processInstanceId); }
@Deployment(resources = TRANSACTION_WITH_COMPENSATION_PROCESS) public void testCancelCompensatingTask() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testProcess"); completeTasksInOrder("userTask"); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService.createProcessInstanceModification(processInstance.getId()).cancelActivityInstance(getInstanceIdForActivity(tree, "undoTask")).execute(); assertProcessEnded(processInstance.getId()); }
@Deployment(resources = PARALLEL_GATEWAY_PROCESS) public void testCancellationThatEndsProcessInstance() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("parallelGateway"); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService.createProcessInstanceModification(processInstance.getId()) .cancelActivityInstance(getInstanceIdForActivity(tree, "task1")) .cancelActivityInstance(getInstanceIdForActivity(tree, "task2")) .execute(); assertProcessEnded(processInstance.getId()); }
@Deployment(resources = { CALL_ACTIVITY_PARENT_PROCESS, CALL_ACTIVITY_CHILD_PROCESS }) public void FAILING_testCancelCallActivityInstance() { // given ProcessInstance parentprocess = runtimeService.startProcessInstanceByKey("parentprocess"); ProcessInstance subProcess = runtimeService.createProcessInstanceQuery().processDefinitionKey("subprocess").singleResult(); ActivityInstance subProcessActivityInst = runtimeService.getActivityInstance(subProcess.getId()); // when runtimeService.createProcessInstanceModification(subProcess.getId()).startBeforeActivity("childEnd", subProcess.getId()) .cancelActivityInstance(getInstanceIdForActivity(subProcessActivityInst, "innerTask")).execute(); // then assertProcessEnded(parentprocess.getId()); }
@Deployment(resources = TRANSACTION_WITH_COMPENSATION_PROCESS) public void testStartActivityAndCancelCompensatingTask() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testProcess"); completeTasksInOrder("userTask"); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("userTask") .cancelActivityInstance(getInstanceIdForActivity(tree, "undoTask")).execute(); tree = runtimeService.getActivityInstance(processInstance.getId()); assertThat(tree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).beginScope("tx").activity("userTask").done()); completeTasksInOrder("userTask", "undoTask", "afterCancel"); assertProcessEnded(processInstance.getId()); }