@Override public void applyTo(ProcessInstanceModificationBuilder builder, ProcessEngine engine, ObjectMapper mapper) { validateParameters(); if (activityId != null) { builder.cancelAllForActivity(activityId); } else if (activityInstanceId != null) { builder.cancelActivityInstance(activityInstanceId); } else if (transitionInstanceId != null) { builder.cancelTransitionInstance(transitionInstanceId); } }
@Override public void applyTo(ProcessInstanceModificationBuilder builder, ProcessEngine engine, ObjectMapper mapper) { validateParameters(); if (activityId != null) { builder.cancelAllForActivity(activityId); } else if (activityInstanceId != null) { builder.cancelActivityInstance(activityInstanceId); } else if (transitionInstanceId != null) { builder.cancelTransitionInstance(transitionInstanceId); } }
@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 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(); }
@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()); }
@Deployment(resources = SEQUENTIAL_MULTI_INSTANCE_SUBPROCESS_PROCESS) public void testCancelMultiInstanceBodySequentialSubprocess() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("miSequentialSubprocess"); completeTasksInOrder("beforeTask"); // when runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("miSubProcess#multiInstanceBody") .execute(); // then assertProcessEnded(processInstance.getId()); }
@Deployment(resources = NESTED_PARALLEL_MULTI_INSTANCE_TASK_PROCESS) public void testCancelAllInnerActivityNestedParallelTasks() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("nestedMiParallelUserTasks"); completeTasksInOrder("beforeTask"); // when runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("miTasks") .execute(); // then assertProcessEnded(processInstance.getId()); }
@Deployment(resources = SEQUENTIAL_MULTI_INSTANCE_TASK_PROCESS) public void testCancelAllInnerActivitySequentialTasks() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("miSequentialUserTasks"); completeTasksInOrder("beforeTask"); // when runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("miTasks") .execute(); // then assertProcessEnded(processInstance.getId()); }
@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_TASK_PROCESS) public void testCancelAllInOneTaskProcess() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); String processInstanceId = processInstance.getId(); // two instance of theTask runtimeService.createProcessInstanceModification(processInstanceId) .startBeforeActivity("theTask") .execute(); // when runtimeService .createProcessInstanceModification(processInstanceId) .cancelAllForActivity("theTask") .execute(); assertProcessEnded(processInstanceId); }
public void testDeleteProcessInstanceByModifyingWithoutDeleteInstancePermissionOnProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(MESSAGE_BOUNDARY_PROCESS_KEY).getId(); Authorization authorization = createGrantAuthorization(PROCESS_DEFINITION, MESSAGE_BOUNDARY_PROCESS_KEY); authorization.setUserId(userId); authorization.addPermission(UPDATE_INSTANCE); authorization.addPermission(DELETE_INSTANCE); saveAuthorization(authorization); // when runtimeService.createProcessInstanceModification(processInstanceId) .cancelAllForActivity("task") .execute(); // then assertProcessEnded(processInstanceId); }
@Deployment(resources = ONE_SCOPE_TASK_PROCESS) public void testCancelAllInOneScopeTaskProcess() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); String processInstanceId = processInstance.getId(); // two instances of theTask runtimeService .createProcessInstanceModification(processInstance.getId()) .startBeforeActivity("theTask") .execute(); // then runtimeService .createProcessInstanceModification(processInstance.getId()) .cancelAllForActivity("theTask") .execute(); assertProcessEnded(processInstanceId); }
@Deployment(resources = ONE_TASK_PROCESS) public void testCancelTaskShouldCancelProcessInstance() { // given String processInstanceId = runtimeService.startProcessInstanceByKey("oneTaskProcess").getId(); // when runtimeService .createProcessInstanceModification(processInstanceId) .cancelAllForActivity("theTask") .execute(true, false); // then HistoricProcessInstance instance = historyService.createHistoricProcessInstanceQuery().singleResult(); assertNotNull(instance); assertEquals(processInstanceId, instance.getId()); assertNotNull(instance.getEndTime()); }
@Deployment(resources = IO_MAPPING_PROCESS) public void testSkipIoMappings() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("ioMappingProcess"); // when I start task2 runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("task2").execute(false, true); // then the input mapping should not have executed Execution task2Execution = runtimeService.createExecutionQuery().activityId("task2").singleResult(); assertNotNull(task2Execution); assertNull(runtimeService.getVariable(task2Execution.getId(), "inputMappingExecuted")); // when I cancel task2 runtimeService.createProcessInstanceModification(processInstance.getId()).cancelAllForActivity("task2").execute(false, true); // then the output mapping should not have executed assertNull(runtimeService.getVariable(processInstance.getId(), "outputMappingExecuted")); }