use of org.activiti.api.process.model.ProcessDefinition in project Activiti by Activiti.
the class ProcessRuntimeImpl method processDefinitions.
@Override
public Page<ProcessDefinition> processDefinitions(Pageable pageable, GetProcessDefinitionsPayload getProcessDefinitionsPayload) {
if (getProcessDefinitionsPayload == null) {
throw new IllegalStateException("payload cannot be null");
}
GetProcessDefinitionsPayload securityKeysInPayload = securityPoliciesManager.restrictProcessDefQuery(SecurityPolicyAccess.READ);
// else ignore and use the user provided ones.
if (!securityKeysInPayload.getProcessDefinitionKeys().isEmpty()) {
getProcessDefinitionsPayload.setProcessDefinitionKeys(securityKeysInPayload.getProcessDefinitionKeys());
}
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
if (getProcessDefinitionsPayload.hasDefinitionKeys()) {
processDefinitionQuery.processDefinitionKeys(getProcessDefinitionsPayload.getProcessDefinitionKeys());
}
List<org.activiti.engine.repository.ProcessDefinition> currentVersionDefinitions = filterCurrentVersionDefinitions(processDefinitionQuery.list());
return new PageImpl<>(processDefinitionConverter.from(currentVersionDefinitions), Math.toIntExact(processDefinitionQuery.count()));
}
use of org.activiti.api.process.model.ProcessDefinition in project Activiti by Activiti.
the class ProcessRuntimeImpl method createProcessInstanceBuilder.
private ProcessInstanceBuilder createProcessInstanceBuilder(StartProcessPayload startProcessPayload) {
ProcessDefinition processDefinition = getProcessDefinitionAndCheckUserHasRights(startProcessPayload.getProcessDefinitionId(), startProcessPayload.getProcessDefinitionKey());
processVariablesValidator.checkStartProcessPayloadVariables(startProcessPayload, processDefinition.getId());
return runtimeService.createProcessInstanceBuilder().processDefinitionId(processDefinition.getId()).processDefinitionKey(processDefinition.getKey()).businessKey(startProcessPayload.getBusinessKey()).variables(startProcessPayload.getVariables()).name(startProcessPayload.getName());
}
use of org.activiti.api.process.model.ProcessDefinition in project Activiti by Activiti.
the class ProcessAdminRuntimeImpl method start.
@Override
public ProcessInstance start(StartProcessPayload startProcessPayload) {
ProcessDefinition processDefinition = null;
if (startProcessPayload.getProcessDefinitionId() != null) {
processDefinition = processDefinition(startProcessPayload.getProcessDefinitionId());
}
if (processDefinition == null && startProcessPayload.getProcessDefinitionKey() != null) {
processDefinition = processDefinition(startProcessPayload.getProcessDefinitionKey());
}
if (processDefinition == null) {
throw new IllegalStateException("At least Process Definition Id or Key needs to be provided to start a process");
}
processVariablesValidator.checkStartProcessPayloadVariables(startProcessPayload, processDefinition.getId());
return processInstanceConverter.from(runtimeService.createProcessInstanceBuilder().processDefinitionId(processDefinition.getId()).processDefinitionKey(processDefinition.getKey()).businessKey(startProcessPayload.getBusinessKey()).variables(startProcessPayload.getVariables()).name(startProcessPayload.getName()).start());
}
use of org.activiti.api.process.model.ProcessDefinition in project Activiti by Activiti.
the class ProcessRuntimeIT method updateProcessInstanceAdmin.
@Test
public void updateProcessInstanceAdmin() {
securityUtil.logInAs("admin");
Page<ProcessDefinition> processDefinitionPage = processAdminRuntime.processDefinitions(Pageable.of(0, 50));
assertThat(processDefinitionPage.getContent()).isNotNull();
assertThat(processDefinitionPage.getContent()).extracting(ProcessDefinition::getKey).contains(CATEGORIZE_HUMAN_PROCESS);
// start a process with a business key to check filters
ProcessInstance categorizeProcess = processAdminRuntime.start(ProcessPayloadBuilder.start().withProcessDefinitionKey(CATEGORIZE_HUMAN_PROCESS).withVariable("expectedKey", true).withBusinessKey("my business key").withName("my process name").build());
assertThat(categorizeProcess).isNotNull();
assertThat(categorizeProcess.getStatus()).isEqualTo(ProcessInstance.ProcessInstanceStatus.RUNNING);
assertThat(categorizeProcess.getName()).isEqualTo("my process name");
// update a process
Page<ProcessInstance> processInstancePage = processAdminRuntime.processInstances(PAGEABLE);
ProcessInstance processInstance = processInstancePage.getContent().get(0);
UpdateProcessPayload updateProcessPayload = ProcessPayloadBuilder.update().withProcessInstanceId(processInstance.getId()).withBusinessKey(processInstance.getBusinessKey() + " UPDATED").withName(processInstance.getName() + " UPDATED").build();
ProcessInstance updatedProcessInstance = processAdminRuntime.update(updateProcessPayload);
assertThat(updatedProcessInstance).isNotNull();
processInstancePage = processAdminRuntime.processInstances(PAGEABLE);
assertThat(processInstancePage).isNotNull();
assertThat(processInstancePage.getContent()).hasSize(1);
processInstance = processInstancePage.getContent().get(0);
assertThat(processInstance.getName()).isEqualTo("my process name UPDATED");
assertThat(processInstance.getBusinessKey()).isEqualTo("my business key UPDATED");
// delete a process to avoid possible problems with other tests
ProcessInstance deletedProcessInstance = processAdminRuntime.delete(ProcessPayloadBuilder.delete(categorizeProcess));
assertThat(deletedProcessInstance).isNotNull();
assertThat(deletedProcessInstance.getStatus()).isEqualTo(ProcessInstance.ProcessInstanceStatus.CANCELLED);
}
use of org.activiti.api.process.model.ProcessDefinition in project Activiti by Activiti.
the class ProcessRuntimeIT method should_OnlyProcessDefinitionsFromLatestVersionRetrieved.
@Test
public void should_OnlyProcessDefinitionsFromLatestVersionRetrieved() {
Deployment deployment = processRuntime.selectLatestDeployment();
Page<ProcessDefinition> processDefinitionPage = processRuntime.processDefinitions(PAGEABLE);
assertThat(processDefinitionPage.getContent().stream().filter(c -> c.getKey().equals(SUPER_PROCESS))).extracting(ProcessDefinition::getAppVersion).containsOnly(deployment.getVersion().toString());
}
Aggregations